EditText小键盘弹起布局

版本1.0

小键盘弹起来时问题的表现

  1. 把所有的布局往上顶起,这有自定义的头部也被顶出屏幕
  2. 只把EditText顶起,但是其他不顶起

希望效果:

  • 个别的控件停留在顶部不移动(如自定义的标题)
  • 其他控件随着键盘弹起向上移动,例如评论时,能一直看到最后的品论信息

解决方法:

  1. mainfest设置: android:windowSoftInputMode="stateUnchanged|adjustResize"
  2. 布局文件中使用相对布局
  3. 把希望随着屏幕移动的控件与EditText关联起来(用id,在…之上等)

版本2.0

新的需求:
小键盘弹起是把布局全部往上顶起,本来上面的可以解决
但是现在布局因为适配问题可能要上下滑动,然后上面的就没有效果了,
不能设置EditText的相对位置,导致无法生效


解决办法

  • mainfest设置:
    android:windowSoftInputMode="stateUnchanged|adjustResize"
  • 在EditText布局外的ScrollView,在最外边的父控件设置 getViewTreeObserver().addOnGlobalLayoutListener

mScrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int heightDiff = mScrollview.getRootView().getHeight() - mScrollview.getHeight();
                if (heightDiff > 300) { // 说明键盘是弹出状态
                   //滑动到最后
                   //mScrollview.fullScroll(ScrollView.FOCUS_DOWN);
                } else {   

             }
            }
        });

 记录所见所得,有时候换个思路,就直接解决了,等待更好的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值