今天在过程中遇到了关于Android软件盘的问题,点击输入框,目前弹出键盘会挡住输入框,需要手动上移页面,这样的app可能会给用户带来不便.因此对软键盘进行优化,然后一顿百度,最后找到解决方案,其实关于软键盘的解决都在在AndroidManifest.xml文件中界面对应的里设置windowSoftInputMode属性即可,下面把踩过的坑分享给大家,避免大家在踩坑坑哦!!!
先说键盘遮挡输入框内容的问题,在AndroidManifest.xml中添加 android:windowSoftInputMode="adjustPan|stateHidden"即可
<activity
android:windowSoftInputMode="adjustPan|stateHidden"
android:name=".ui.activity.DeviceEditActivity"
android:screenOrientation="portrait" />
下面把更多关于windowSoftInputMode属性内部各个值的含义分享给大家:stateUnspecified
:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
stateUnchanged
:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
stateHidden
:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden
:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible
:软键盘通常是可见的
stateAlwaysVisible
:用户选择activity时,软键盘总是显示的状态
adjustUnspecified
:默认设置,通常由系统自行决定是隐藏还是显示adjustResize
:该Activity总是调整屏幕的大小以便留出软键盘的空间
adjustPan
:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
例如:
AndroidManifest.xml文件中界面对应的<activity>里加入
android:windowSoftInputMode="adjustPan" 键盘就会覆盖屏幕
android:windowSoftInputMode="stateVisible|adjustResize" 屏幕整体上移
android:windowSoftInputMode="adjustPan|stateHidden" 软键盘弹出,界面布局不变,这是解决弹出软键盘,界面整体被压缩的方式