EditText弹出输入键盘后页面往上顶的问题

ps: 在全屏模式下,android:windowSoftInputMode的ajust参数可能不起作用

解决方案:
1.在中AndroidManifest中设置相应的Activity为

android:windowSoftInputMode="adjustPan"

参数介绍:
"adjustResize" 是软件盘在窗口下 窗口会自动调整大小;
当显示软键盘时,调整window内的控件大小以便显示软键盘。这样的话控件可能会变形。
"adjustPan" 是软件盘遮盖在窗口上;
当显示软键盘时,调整window的空白区域来显示软键盘。软键盘还是有可能遮挡一些有内容区域,这时用户就只有退出软键盘才能看到这些被遮挡区域并进行交互。

在选择了adjustPan后,页面还是会往上顶和变形,经过调试得出是 RelativeLayout和 layout_weight 导致的。
猜测是这两个是给控件动态分配空间的,所以当软键盘弹出时,会重新布局页面,导致页面变形。所以建议是有Edit时谨慎使用RelativeLayout 和layout_weight
最后的布局xml如下,用了FrameLayout和LinearLayout。
只在空view中使用layout_weight,用来调节分块的空间占比:
(如果一定要使用RelativeLayout并且不介意父布局变形的话,adjustResize也是可以的)



    

    

        

        

            

            
        

        

        

        

        

            

            

                

                
            

            

            

也可以参考:
学习windowSoftInputMode,解决软键盘遮挡住输入框的问题

你可能感兴趣的:(EditText弹出输入键盘后页面往上顶的问题)