diff --git a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIActivity.java b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIActivity.java index 68e43fec..629537a9 100644 --- a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIActivity.java +++ b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIActivity.java @@ -25,13 +25,13 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.qmuiteam.qmui.arch.scheme.ActivitySchemeRefreshable; import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import static com.qmuiteam.qmui.arch.SwipeBackLayout.DRAG_DIRECTION_BOTTOM_TO_TOP; import static com.qmuiteam.qmui.arch.SwipeBackLayout.DRAG_DIRECTION_LEFT_TO_RIGHT; import static com.qmuiteam.qmui.arch.SwipeBackLayout.DRAG_DIRECTION_NONE; @@ -326,6 +326,11 @@ public class QMUIActivity extends InnerBaseActivity implements ActivitySchemeRef return false; } + @Override + public boolean interceptSelfKeyboardInset() { + return false; + } + @Override public void finish() { if (!QMUISwipeBackActivityManager.getInstance().canSwipeBack()) { diff --git a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragment.java b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragment.java index 565649ae..d66d96ce 100644 --- a/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragment.java +++ b/arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragment.java @@ -1403,6 +1403,11 @@ public abstract class QMUIFragment extends Fragment implements return false; } + @Override + public boolean interceptSelfKeyboardInset() { + return false; + } + @Override public void refreshFromScheme(@Nullable Bundle bundle) { diff --git a/arch/src/main/java/com/qmuiteam/qmui/arch/SwipeBackLayout.java b/arch/src/main/java/com/qmuiteam/qmui/arch/SwipeBackLayout.java index 6269727d..e2aa0671 100644 --- a/arch/src/main/java/com/qmuiteam/qmui/arch/SwipeBackLayout.java +++ b/arch/src/main/java/com/qmuiteam/qmui/arch/SwipeBackLayout.java @@ -244,6 +244,9 @@ public class SwipeBackLayout extends QMUIWindowInsetLayout implements IWindowIns @Override public void onHandleKeyboard(int keyboardInset) { + if(mOnKeyboardInsetHandler != null && mOnKeyboardInsetHandler.interceptSelfKeyboardInset()){ + return; + } if(mOnKeyboardInsetHandler == null || !mOnKeyboardInsetHandler.handleKeyboardInset(keyboardInset)){ QMUIViewHelper.setPaddingBottom(this, keyboardInset); } @@ -862,6 +865,7 @@ public class SwipeBackLayout extends QMUIWindowInsetLayout implements IWindowIns public interface OnKeyboardInsetHandler { boolean handleKeyboardInset(int inset); + boolean interceptSelfKeyboardInset(); } public static class ViewMoveAuto implements ViewMoveAction {