Android 输入法弹出框挡住界面问题

在Android开发中,经常遇到点击输入框输入内容时,虚拟键盘弹出挡住了底下的按钮,如登录界面,弹出虚拟键盘后,挡住了登录按钮。要实现如微博这样的效果下面的选择“照片、@、#”等一排工具栏,一直会在输入框上边,这样就能随时显示工具栏了。

要实现这样的功能很简单,有以下几种方法:

1、在相应界面的Layout布局中,最外层添加一个ScrollView,然后在Activity中,点击输入框时,让屏幕直接上移到底端。

private Handler mHandler = new Handler();


   // 这里必须要给一个延迟,如果不加延迟则没有效果
   mHandler.postDelayed(new Runnable() {

    @Override
    public void run() {
     // 将ScrollView滚动到底
     mScrollView.fullScroll(View.FOCUS_DOWN);
    }
   }, 10);

 

2、在AndroidManifest.xml对应的Activity里添加
android:windowSoftInputMode="stateHidden|adjustResize"这个属性,但需要注意以下几点,我也是在另外一篇文章中看到的,要不就不会不起作用。

(1)使用adjustResize属性是 如果界面中没有滚动条 需要添加一个滚动条scrollview包裹所有内容,保证resize后能滚动显示显示不下的内容
(2)全屏fullscreen模式时 adjustResize属性失效(这一点搞了我一下午),属于是一个bug,只能使用adjustPan 来设置焦点

所以类中不能设定requestWindowFeature(Window.FEATURE_NO_TITLE);
(3)全屏fullscreen模式时 webview adjustPan 偶尔也会失效。

最后我实现的效果和上面微博图片类似

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值