当在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代码
<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://blog.csdn.net/stonesharp/article/details/7648384
分享到:
相关推荐
Android中软键盘的使用是非常多的,下面为软键盘常用的设置; 1、横屏时,点击输入框出现全键盘解决方案: 在EditText、searchview等控件中加 android:imeOptions=flagNoExtractUi 2、竖屏时,安卓会出现半屏。 ...
本篇文章主要介绍Android Dialog中软键盘的显示与隐藏的示例,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
中软国际招聘JAVA/ANDROID
本文主要介绍了Android中软键盘自动弹出和关闭的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
1 wpf 中显示、隐藏虚拟键盘的实现; 2 基本功能已实现,具体还要根据实际完善; 3 主要为了测试使用
本篇内容通过代码示例给大家详细讲解了关于Android开发中软键盘的显示和隐藏的代码实现过程以及容易忽略的问题,来学习下吧。
智能手机开发平台QT中软键盘的实现及改进
用C#语言写的屏幕软键盘程序,可以被其他程序调用
主要介绍了Android编程中软键盘基本用法,结合实例形式分析了Android软键盘的显示、隐藏与使用注意事项,需要的朋友可以参考下
中软国际最新android笔试题,用手机拍的,上面是本人的答案,水平有限,很多都不对,望见谅。
>有一个很常见的需求,就是页面中软键盘打开时,希望能点击屏幕其他的任何位置,就能把软键盘给隐藏掉. >比如登录, 注册之类的常见页面. >在实际开发中,很多大佬通过其他控件的点击事件,在onclick方法中调用软键盘的...
在android程序开发过程中,可能会有很多人会和我一样,因为内存溢出而感觉到苦恼,因为本身引用是个很多很多(基本就是个看网络美女图片的软件,哈哈),大家都知道android对于每个应用分配的内存是有限制的,不同机型...
中软面试 中软面试 中软面试
中软国际国佩教程,经典安卓培训教程,大家好好学习一下
简单易懂轻松用c#语言中实现 pad 或pocket pc 的键盘的隐藏和显示
中软试题 中软国际校园招聘笔试试题中软国际校园招聘笔试试题
中软国际Java培训,关于api基础的课件,有例子