当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入。

解决办法:

方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上的是

android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。

方法三:把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。

注:方法一和二应该是同一种方法,不过一个是在代码里实现一个是在xml文件里实现。可能会应为1.5和之前的版本不支持该方法。但是方法三是肯定没有问题的。

文主要介绍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://blog.csdn.net/stonesharp/article/details/7648384

更多相关文章

  1. smack 源码分析- PacketWriter (android上实现长连接)
  2. Android四大基本组件介绍与生命周期
  3. Android(安卓)相机实例
  4. Android: 如何利用Handler、Thread更新视图
  5. 在本地UI使用webview,在html页面用js与android通信方法。
  6. android 带箭头的textview文字伸缩效果
  7. 浅析Android中Handler机制
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)ScreenShot 屏幕截图
  2. Android(安卓)Framework 基础
  3. Android(安卓)横向选择器(HorizontalPick
  4. android 下载安装并打开apk
  5. Android(安卓)SharedPreferences一般的读
  6. android美化对话框
  7. Android(安卓)TextView支持的HTML标签
  8. 12 Android(安卓)AsyncHttpClient 的简单
  9. Android(安卓)Activity之间跳转出现短暂
  10. Android(安卓)– Froyo port for OMAP-35