bottomsheetdialog 中有个EditText,弹出软键盘会把Dialog往上面挤

如标题所示,Dialog会往上面挤,造成界面效果非常难看。 如图:
图片描述图片描述

我在Activity中设置了android:windowSoftInputMode=“adjustNothing” 在Dialog中也设置了android:windowSoftInputMode=“adjustNothing” dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); 键盘弹出来后,还是会把Dialog往上挤

我把bottomSheetDialog换成BottomSheetFragment,效果更加不好,如下图:
图片描述

希望大家能有好的解决方案分享下

阅读 20.1k
2 个回答

目前想到的是自定义viewGroup作为顶级布局,在onMeasure中监听软键盘来动态改变高度,这个要把windowSoftInputMode改为adjustResize。

我也遇到了同样的问题, 最后发现是谷歌的design包在低版本的bug, 我升级了design包的版本后, adjustnothing可以起作用了.

修改gradle:

com.android.support:design:26.1.0

修改你的BottomSheetDialog类:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题