黑马程序员技术交流社区

标题: Android 输入法键盘和activity页面遮挡问题解决 [打印本页]

作者: asd19860    时间: 2015-10-29 15:25
标题: Android 输入法键盘和activity页面遮挡问题解决
相信大家在开发时会遇到弹出软键盘后,输入框上移就看不到输入框了,其实只要将Webview放到了ScrollView中,将ScrollView改为LinearLayout问题解决了,不会在弹出软键盘后大幅滚动。不过下面还是详细介绍下软键盘和activity页面遮挡的问题。
通常情况下如果我们在一个输入框输入内容,输入法键盘弹出时,activity自动设置高度,相当于在activity向上滚动了添加了输入法键盘的高度。但有时可能淹没当前的输入框,如果希望输入法键盘弹出时不自动向上挤压activity,在activty中设置属性android:windowSoftInputMode="adjustPan",这样输入法可以覆盖Activity显示,如下:
  1. <activity android:name="testActivity"
  2.       android:windowSoftInputMode="adjustPan">
复制代码

设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。
属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode
adjustPan同样存在问题,即可能需要关闭软键盘,定位被挡住的输入框,我希望的是介于adjustPanadjustResize之间的解决方案,即软键盘会对activity有一定挤压,但是焦点所在输入框始终会显示在屏幕上,有会的朋友欢迎留言分享,个人觉得可能的解决方案是new一个LinearLayout,重写其中的
  1. protected void onSizeChanged(int w, int h, int oldw, int oldh)
复制代码

当然,开发完APP也是需要进行全方位的检测:www.ineice.com


作者: 洋葱头头    时间: 2015-10-29 17:25
这里不是安卓板块哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2