android软键盘遮挡EditText输入框

在安卓开发中我们再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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值