转自: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代码
  1. <activityandroid:name="testActivity"
  2. android:windowSoftInputMode="adjustPan">

设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。

属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode

adjustPan同样存在问题,即可能需要关闭软键盘,定位被挡住的输入框,我希望的是介于adjustPan和adjustResize之间的解决方案,即软键盘会对activity有一定挤压,但是焦点所在输入框始终会显示在屏幕上,有会的朋友欢迎留言分享,个人觉得可能的解决方案是new一个LinearLayout,重写其中的

Java代码
  1. protectedvoidonSizeChanged(intw,inth,intoldw,intoldh)

方法,使得h参数动态变化达到效果,但较耗时,暂不想尝试了。

关于软键盘更多属性请参考

http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

更多相关文章

  1. android 神奇的android:clipChildren属性
  2. Android(安卓)相关属性
  3. Android(安卓)activity属性设置大全
  4. android scaleType的属性
  5. android 相对布局属性说明
  6. 识别你的手机 Android的属性系统
  7. Android控件属性大全
  8. EditText的详细属性说明
  9. 自定义控件与Handler

随机推荐

  1. 如何POST一个JSON格式的数据给Restful服
  2. android:onTouch()和onTouchEvent()的区
  3. Android 复制文本
  4. Android(手机)连接电脑本地服务器(flask)
  5. Android 学习笔记8---SAX和DOM解析XML文
  6. Android Studio开发环境搭建手记
  7. Android 4.4(KitKat)中VSync信号的虚拟化
  8. android TabHost(选项卡)的使用方法
  9. Android(安卓)8.1 从零开始写 HAL -- (3)
  10. Android ZBar bar code reader二维码