您的位置:首页 > 移动开发 > Android开发

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

2014-10-10 16:40 369 查看
在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 偶尔也会失效。

最后我实现的效果和上面微博图片类似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: