我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。

有人遇到过这个问题吗?知道怎么修吗?


当前回答

我通过添加解决了我的问题

 android:windowSoftInputMode="adjustNothing" 

在清单文件中添加。

并使Recyclerviews约束isScrollContainer为false。

android:isScrollContainer="false"

其他回答

没有一个对我有用,试试这个

 private void scrollingWhileKeyboard() {
    drawerlayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {

            Rect r = new Rect();
            try {
                drawerlayout.getWindowVisibleDisplayFrame(r);
                int screenHeight = drawerlayout.getRootView().getHeight();
                int keypadHeight = screenHeight - r.bottom;
                if (keypadHeight > screenHeight * 0.15) {
                    tabLayout.setVisibility(View.GONE);
                } else {
                    tabLayout.setVisibility(View.VISIBLE);
                }
            } catch (NullPointerException e) {

            }
        }
    });

}
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

这个对我有用。

解决这个问题有两种方法。 转到androidmanifest .xml,在你的活动名称中,添加这一行

   android:windowSoftInputMode="adjustPan"

在下面的代码中,我已经添加到注册活动。

 <activity android:name=".Register"
            android:windowSoftInputMode="adjustPan">

在第二种方法中,转到您的活动,并在您的onCreate方法中添加此代码。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

这对我来说是最好的方法

android:windowSoftInputMode="adjustNothing"

试一试!

对于xamarin用户,将以下代码添加到MainActivity类的Activity属性中,

WindowSoftInputMode =Android.Views.SoftInput.AdjustNothing

或者你可以添加这段代码Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)到MainActivity类的OnCreate方法。