Android 输入法键盘和activity页面遮挡问题解决

本文主要介绍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代码  

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

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

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

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

Java代码  

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

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

参考:http://trinea.iteye.com/blog/1486663

时间: 2024-11-12 23:08:29

Android 输入法键盘和activity页面遮挡问题解决的相关文章

Android中如何解决输入法键盘和activity页面遮挡的问题

不希望遮挡设置activity属性android:windowSoftInputMode="adjustPan" 希望动态调整高度android:windowSoftInputMode="adjustResize" 问题: 我原来的问题是,对于腾讯微博的OAuth验证webView,弹出软键盘后,输入框上移就看不到输入框了,后发现Webview放到了ScrollView中,将ScrollView改为LinearLayout问题解决了,不会在弹出软键盘后大幅滚动.不过

Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)

在个别时候,须要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了側滑面板.就要强制隐藏输入法键盘. 网上常见的方法有: 1. InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 这个是让输入法状

android 显示和隐藏输入法键盘用法介绍

在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘.网上常见的方法有: 1.InputMethodManager imm = (InputMethodManager) getActivity() .getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 这个是让输入法状态发

Android打开某个activity时自动弹出输入法键盘

最近在做一个可以让用户修改自己账户资料的activity,具体是打开后有一个EditText,然后用户可以在这里输入相关信息,但是做好后发现,进入这个activity时系统并没有自动弹出输入法键盘,于是上网搜索,发现一个很简单的方法,就是在manifest清单文件对应的activity配置中加入一句Android:windowSoftInputMode="stateVisible|adjustResize"就可以了: <!-- 修改用户资料 --> <activity

Android软键盘隐藏,遮挡EidtText解决办法

一.自动弹出软键盘 Timer timer=new Timer(); timer.schedule(new TimerTask() { public void run() { InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(0, InputMethodManage

Android 隐藏输入法键盘

1 如果Activity页面有EditText,为了不影响用户体验,我们需要在进入该页面时不弹出软键盘.如何设置呢? 在mainifest.xml文件中配置Activity时,设置这两句即可: android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustUnspecified|stateHidden" 2 如果在对话框中有EditText,当输入完成后自动

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

之前我们在使用vue进行 h5 表单录入的过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:当输入框在可视区底部或者偏下的位置 触发条件:输入框获取焦点,弹出软键盘 表现:软键盘 覆盖 h5页面中的输入框 问题分析: 1.发现问题:当前页面中box为flex布局,内容为上下固定高,中间自适应(中间区域内容过多会出现滚动条,input框在wrapper的底部),input获取焦点,手机键盘弹出,input未上移到可视区内,

Android输入法扩展之外接键盘中文输入

大家想不想要这样一台Android  Surface平板,看着就过瘾吧. 我们知道,android目前的输入都是通过软键盘实现的,用外接键盘的少,这个在手机上是可以理解的.当手机接上外接键盘后,整体会显得头重脚轻,并且用键盘输入时,人离手机的距离就远了,自然不太适合看清手机上的内容.那在平板上呢?如果平板只是平时用来浏览看视频,不进行大量输入,自然也用不上外接键盘.那究竟什么时候需要用到外接键盘呢?本人觉得首先要满足如下两个条件. 1)   平板和外接键盘完美融合,组合后很像笔记本使用模式.类似

android EditText设置弹出数字输入法键盘

<EditText      android:id="@+id/edit_digit_input"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:digits="1234567890."      android:singleLine="true"