当在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"即可,如下:

  1. <activity android:name="testActivity"
  2. android:windowSoftInputMode="adjustPan">

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

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

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

  1. protected void onSizeChanged(int w, int h, int oldw, int oldh)

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

Android 软键盘盖住输入框的问题的更多相关文章

  1. Android软键盘与输入框的设置

    大家开发Android或者用app的时候会发现转到输入框就会自动弹出软键盘,切换别的页面就会自动的隐藏,下面几行代码用的熟练了就行了: 1.方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) I ...

  2. 移动端Android软键盘遮住输入框解决!

    在使用vue的情况下,在输入框中添加 <textarea class="textarea" @click="isAndroid" :maxlength=& ...

  3. Android软键盘弹出,覆盖h5页面输入框问题

    之前我们在使用vue进行 h5 表单录入的过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:当输入框在可视区底部或者偏下的位 ...

  4. h5软键盘挡住输入框问题解决(android)

    问题 移动端浏览器中的表单在部分android机型上测试,点击靠下的输入框时会遇到弹出的软键盘挡住输入框问题 ios可自身弹起(ios自身的调整偶尔也会出问题,例如第三方键盘会遮挡,原因是第三方输入法 ...

  5. css3软键盘不盖住输入框的方法

    css3软键盘不盖住输入框的方法 弹出软键盘的时候 最外面的容器高度就发生了变化 要减去软键盘高度了<pre>var bodyheight bodyheight = $('body').h ...

  6. Android软键盘遮挡的四种解决方案

    问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时输入 ...

  7. Android 软键盘弹出时把布局顶上去,控件乱套解决方法

    解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.Layo ...

  8. 完美解决android软键盘监听

    最近在做应用性能调优,发现在一个包含有输入框的Activity中,当软键盘弹出的时候,如果直接finish掉此Activity,那么在返回到上一个Activity时,界面的渲染会由于软键盘没有及时的收 ...

  9. android软键盘enter键

    enter键,回车键,电脑键盘上enter键就有多种响应.android软键盘也不例外 你在EditText上输入以后,想在下一行输入框输入,可能需要去点击下一行输入框,让它获取焦点,也可能要隐藏软键 ...

随机推荐

  1. maven工程直接部署在tomcat上

    http://www.cnblogs.com/guodefu909/p/4874549.html (现在用的是第三点.)

  2. spring--aop总结

    AOP(Aspect Oriented Programming的缩写)所用的思想其实和设计模式是一样的,即在不修改原代码的情况下统一增加或者修改功能.还有,AOP大多用在spring里面. AOP是面 ...

  3. uC/OS-II测试(TEST)块

    /*************************************************************************************************** ...

  4. AppleHDA 10.9.3 disassm 1

    1.通过AppleHDAFunctionGroupFactory::createAppleHDAFunctionGroup(DevIdStruct *)实际创建相应的 AppleHDAFunction ...

  5. 纯css3实现旋转的太极图

    效果图: 代码如下: <!DOCTYPE html> <html> <head lang="zh"> <meta charset=&quo ...

  6. 常用的工具类4-IP类

    public static class IpHelper { /// <summary> /// 获取Ip /// </summary> /// <returns> ...

  7. CentOS7安装mysql5

    CentOS7的yum源中默认没有mysql. 1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5. ...

  8. hdu 1318 Palindromes

    Palindromes Time Limit:3000MS     Memory Limit:0KB     64bit                                         ...

  9. ubuntu网络设置

    修改/etc/network/interfaces文件sudo gedit /etc/network/interfaces 贴出我的eth0设置,自己看情况修改:# The primary netwo ...

  10. Spring中ApplicationContext对事件的支持

    Spring中ApplicationContext对事件的支持   ApplicationContext具有发布事件的能力.这是因为该接口继承了ApplicationEventPublisher接口. ...