android软键盘遮挡EditText输入框

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/soha_dong/article/details/88966140

在安卓开发中我们再EditText输入的时候总会遇到被软键盘遮挡,下面提供几点解决方法:

1.修改AndroidManifest.xml文件

<activity android:name=".XXXActivity"
            //显示软键盘,并让布局压缩
            android:windowSoftInputMode="stateVisible|adjustResize"
            android:screenOrientation="portrait"/>
  • stateUnspecified:界面没有设置"android:windowSoftInputMode"时的状态.这个状态是弹出有EditText的界面时时不弹出软键盘的,当EditText获取焦点的时候弹出软件盘
  • stateUnchanged:状态不改变,意思就是和上一个界面相同,上一个界面弹出软键盘,跳转到这个界面时,软键盘也是弹出状态.
  • stateHidden:隐藏键盘,弹出这个界面的时候,不管上个界面是什么状态,这个界面的软键盘都是隐藏的.
  • stateAlwaysHidden:一直隐藏(跟上面的区别未知,试不出来).
  • stateVisible:强制弹出软键盘.跳转到界面后,没有EditText也弹出键盘.
  • stateAlwaysVisible:一直显示键盘(同上).

2.在activity的onCreate()方法中设置

        //设置软键盘不被遮挡
        Window win = getWindow();
        win.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

3.在布局文件使用ScrollView包裹布局

4.如果设置了沉浸式状态栏,还需要在布局文件的根节点加入

android:fitsSystemWindows="true"

可以按以上方法进行操作,

只要弹出软键盘会影响到布局的情况,都用ScrollView把布局包裹起来,被包裹的内容就是可能被缩放或挤出屏幕外的内容.然后根据EditText的位置判断用adjustResize还是用adjustPan.
adjustResize是收缩adjustPan是向上挤
个人推荐,登录注册用adjustResize,聊天窗口用adjustPan

猜你喜欢

转载自blog.csdn.net/soha_dong/article/details/88966140
今日推荐