android 输入键盘遮挡页面的问题
转自:http://trinea.iteye.com/blog/1486663
Android 输入法键盘和activity页面遮挡问题解决
- 博客分类:
- Android应用
本文主要介绍Android中如何解决输入法键盘和activity页面遮挡的问题。
总结:
不希望遮挡设置activity属性android:windowSoftInputMode="adjustPan"
希望动态调整高度android:windowSoftInputMode="adjustResize"
问题:
我原来的问题是,对于腾讯微博的OAuth验证webView,弹出软键盘后,输入框上移就看不到输入框了,后发现Webview放到了ScrollView中,将ScrollView改为LinearLayout问题解决了,不会在弹出软键盘后大幅滚动。不过下面还是详细介绍下软键盘和activity页面遮挡的问题。
详细:
通常情况下如果我们在一个输入框输入内容,输入法键盘弹出时,activity自动设置高度,相当于在activity向上滚动了添加了输入法键盘的高度。但有时可能淹没当前的输入框,如果希望输入法键盘弹出时不自动向上挤压activity,在activty中设置属性android:windowSoftInputMode="adjustPan"即可,如下:
Java代码- <activityandroid:name="testActivity"
- android:windowSoftInputMode="adjustPan">
设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。
属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode
adjustPan同样存在问题,即可能需要关闭软键盘,定位被挡住的输入框,我希望的是介于adjustPan和adjustResize之间的解决方案,即软键盘会对activity有一定挤压,但是焦点所在输入框始终会显示在屏幕上,有会的朋友欢迎留言分享,个人觉得可能的解决方案是new一个LinearLayout,重写其中的
Java代码- protectedvoidonSizeChanged(intw,inth,intoldw,intoldh)
方法,使得h参数动态变化达到效果,但较耗时,暂不想尝试了。
关于软键盘更多属性请参考
http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft
更多相关文章
- android 神奇的android:clipChildren属性
- Android(安卓)相关属性
- Android(安卓)activity属性设置大全
- android scaleType的属性
- android 相对布局属性说明
- 识别你的手机 Android的属性系统
- Android控件属性大全
- EditText的详细属性说明
- 自定义控件与Handler