Android 输入法键盘和activity页面遮挡问题解决
2015-10-23 20:56
513 查看
本文主要介绍Android中如何解决输入法键盘和activity页面遮挡的问题。
总结:
不希望遮挡设置activity属性android:windowSoftInputMode="adjustPan"
希望动态调整高度android:windowSoftInputMode="adjustResize"
问题:
我原来的问题是,对于腾讯微博的OAuth验证webView,弹出软键盘后,输入框上移就看不到输入框了,后发现Webview放到了ScrollView中,将ScrollView改为LinearLayout问题解决了,不会在弹出软键盘后大幅滚动。不过下面还是详细介绍下软键盘和activity页面遮挡的问题。
详细:
通常情况下如果我们在一个输入框输入内容,输入法键盘弹出时,activity自动设置高度,相当于在activity向上滚动了添加了输入法键盘的高度。但有时可能淹没当前的输入框,如果希望输入法键盘弹出时不自动向上挤压activity,在activty中设置属性android:windowSoftInputMode="adjustPan",这样输入法可以覆盖Activity显示,如下:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201408/fb13d657a782add30b4b547089ce00f9.png)
<activity android:name="testActivity"
android:windowSoftInputMode="adjustPan">
设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。
属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode
adjustPan同样存在问题,即可能需要关闭软键盘,定位被挡住的输入框,我希望的是介于adjustPan和adjustResize之间的解决方案,即软键盘会对activity有一定挤压,但是焦点所在输入框始终会显示在屏幕上,有会的朋友欢迎留言分享,个人觉得可能的解决方案是new一个LinearLayout,重写其中的
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201408/fb13d657a782add30b4b547089ce00f9.png)
protected void onSizeChanged(int w, int h, int oldw, int oldh)
方法,使得h参数动态变化达到效果,但较耗时,暂不想尝试了。
参考:http://trinea.iteye.com/blog/1486663
总结:
不希望遮挡设置activity属性android:windowSoftInputMode="adjustPan"
希望动态调整高度android:windowSoftInputMode="adjustResize"
问题:
我原来的问题是,对于腾讯微博的OAuth验证webView,弹出软键盘后,输入框上移就看不到输入框了,后发现Webview放到了ScrollView中,将ScrollView改为LinearLayout问题解决了,不会在弹出软键盘后大幅滚动。不过下面还是详细介绍下软键盘和activity页面遮挡的问题。
详细:
通常情况下如果我们在一个输入框输入内容,输入法键盘弹出时,activity自动设置高度,相当于在activity向上滚动了添加了输入法键盘的高度。但有时可能淹没当前的输入框,如果希望输入法键盘弹出时不自动向上挤压activity,在activty中设置属性android:windowSoftInputMode="adjustPan",这样输入法可以覆盖Activity显示,如下:
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201408/fb13d657a782add30b4b547089ce00f9.png)
<activity android:name="testActivity"
android:windowSoftInputMode="adjustPan">
设置属性为android:windowSoftInputMode="adjustResize"即可自动调整高度。
属性stateVisible表示默认显示输入法键盘,其他属性见:android:windowSoftInputMode
adjustPan同样存在问题,即可能需要关闭软键盘,定位被挡住的输入框,我希望的是介于adjustPan和adjustResize之间的解决方案,即软键盘会对activity有一定挤压,但是焦点所在输入框始终会显示在屏幕上,有会的朋友欢迎留言分享,个人觉得可能的解决方案是new一个LinearLayout,重写其中的
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201408/fb13d657a782add30b4b547089ce00f9.png)
protected void onSizeChanged(int w, int h, int oldw, int oldh)
方法,使得h参数动态变化达到效果,但较耗时,暂不想尝试了。
参考:http://trinea.iteye.com/blog/1486663
相关文章推荐
- 和菜鸟一起学android4.0.3源码之硬件gps简单移植
- Android基础和运行机制
- Android 常用colors xml
- Android Material Design之Toolbar与Palette实践
- Android Lint清除无用的资源文件
- [Android基础]动画xml文件
- Android aapt 命令 详细解析
- Android
- android RecyclerView响应点击事件(二)
- Android SlidingDrawer(滑动式抽屉)
- Android 悬浮窗权限问题解决
- Android----ScaleType的使用
- 【FastDev4Android框架开发】Android首页图片自动无限循环轮播Gallery+FlowIndicator(二)
- 【FastDev4Android框架开发】Android快速开发框架介绍(一)
- android 获取控件大小和设置调整控件的位置XY
- Android第三方框架 Universal-Image-Loader的使用,进一步封装
- Android Listview 分页加载数据(滑到底部加载)
- Android模拟产生事件
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- Android studio 利用gradle快速编译出apk