其他分享
首页 > 其他分享> > 完美解决android软键盘挡住输入框方法,还不顶标题栏

完美解决android软键盘挡住输入框方法,还不顶标题栏

作者:互联网

非透明状态栏下使用adjustResize和adjustPan,或是透明状态栏下使用fitsSystemWindows=true属性

AndroidManifest.xml对应的Activity里添加 
android:windowSoftInputMode=”adjustPan”或是android:windowSoftInputMode=”adjustResize”属性 

属性注意事项优缺点失效情况适用情况
adjustResize(建议)需要界面本身可调整尺寸,
如在布局添加ScrollView,或输入控件属于RecycleView/ListView某一项
优点:1.不会把标题栏顶出当前布局;
2.有多项输入时,当前输入框下面的输入框可上下滑动输入 
缺点:1.需要界面本身可调整尺寸;
2. 全屏时失效
1.Activity主窗口尺寸无法调整;
2.Activity全屏
3.android5.0以上通过style设置沉浸式状态栏模式而不设置fitSystemWindow为true
非全屏或是非沉浸式状态栏输入界面,输入框比较多
adjustPan页面不会重新布局,当前输入框和键盘会直接将当前输入框以上界面整体向上平移,这样即使界面包含标题栏,也会被顶上去优点: 使用简单,不需要界面本身可调整尺寸,不会有失效情况 
缺点: 会把标题栏顶出当前布局;有多项输入时,当前输入框下面的输入框无法输入,必须收起键盘显示输入框再输入
有少量输入项,且输入量居界面上方
fitsSystemWindows如果多个View设置了fitsSystemWindows=”true”,只有初始的view起作用,都是从第一个设置了fitsSystemWindows的view开始计算padding优点:使用简单,需要沉浸式状态栏的界面,不需要自己计算padding状态栏的高度
缺点:使用有限制
1.View 的其他 padding 值被重新改写了
2.手机系统版本>=android 4.4
1.界面全屏
2.设置界面主题为沉浸式状态栏

标签:界面,状态栏,标题栏,输入框,软键盘,设置,fitsSystemWindows,输入
来源: https://blog.csdn.net/weixin_41620505/article/details/121989889