Android 键盘顶起最终完美解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 键盘顶起最终完美解决方法相关的知识,希望对你有一定的参考价值。

参考技术A 1.在布局底部放置一个透明的 view_Bottom,通过监听键盘弹出修改 view_Bottom的高度实现,键盘弹出顶起,键盘消失收回 的效果

4.想要不再界面一出现就弹出键盘,完善用户体验,只要在根布局里加入,就能完美解决

Demo连接

Android 底部按钮被软键盘顶起问题解决

参考技术A

我们目前的项目是采用单 Activity 多 Fragment 的架构模式, AndroidManifest.xml 内 MainActivity 的配置如下所示。

stateHidden
状态隐藏,如果我们设置了这个属性,键盘状态就一定是隐藏的,不管上个界面是什么状态,也不管当前界面有没有输入的需求,就是不显示软键盘。
adjustResize
调整大小状态,这个属性表示 Activity 的主窗口总是会被调整大小来保证软键盘的显示空间。如果界面中有可滑动控件,显示效果跟 adjustUnspecified 显示效果一样;如果界面中没有可滑动控件,软键盘可能会盖住一些控件(布局的位置不会发生变化,可能获取了焦点的控件被软键盘盖住)。
一般来说,我们的布局分为两种

第一种布局是不会出现软键盘把底部按钮顶起的情况,首先软键盘的打开实际上是一个 Dialog,而我们在配置文件内的 adjustResize 属性是在页面的根布局 decorView 的子 view 也就是一个线性布局内通过设置 paddingBottom = 软键盘高度,这样其实相当于把整个滚动布局的高度减少了,所以底部的按钮也只是变为需要滚动才能看到。
第二种情况通常为一个继续按钮始终处于页面的底部,中间的内容可以滚动,当根布局的内边距等于软键盘高度时,底部按钮就看起来像是被顶起。

1、监听软键盘的打开收起

2、修改 windowSoftInputMode
adjustPan
如果设置了这个属性,当软键盘弹出的时候,系统会通过布局的移动,来保证用户要进行输入的输入框在用户的视线范围内。如果界面没有可滑动控件,显示效果和 adjustUnspecified 效果一样;如果界面有可滑动控件,在软键盘显示的时候,可能会有一些内容显示不出来。

资料借鉴
Android中Activity的android:windowSoftInputMode属性

以上是关于Android 键盘顶起最终完美解决方法的主要内容,如果未能解决你的问题,请参考以下文章

h5移动端常见虚拟键盘顶起底部导航栏解决办法

Android 底部按钮被软键盘顶起问题解决

关于Android弹出软键盘“顶起”View的问题

vue解决安卓手机软键盘弹出,页面高度被顶起

解决移动端 footer fixd 定位被键盘顶起来的方案

Android解决软键盘弹出将布局顶到上面