Android 软键盘会导致界面移位的解决方法

我在做的一个项目中有个界面会弹出软键盘,但是软键盘弹出来时会把下面的button 挤上去,后来查了下可以用android:windowSoftInputMode=”adjustResize” 属性解决,这篇博客是介绍这个属性的。

———————以下内容为转别人的,出处已不详————————–

 android:windowSoftInputMode

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

【一】当有焦点产生时,软键盘是隐藏还是显示

【二】是否减少活动主窗口大小以便腾出空间放软键盘

它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:"stateVisible|adjustResize". . . >

在这设置的值(除"stateUnspecified""adjustUnspecified"以外)将覆盖在主题中设置的值

各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

2018年8月15日 续 ————

这里有个博客关于这个问题的解决特别的详细:5种方法完美解决android软键盘挡住输入框方法详解

我发现我的需求是不让软键盘把输入框下面的按钮推上去,而我的代码dialog 的Theme里面设置了:
stateVisible|adjustResize
直接去掉就完事了,这样默认就是把下面的按钮覆盖住。

你可能感兴趣的:(安卓基础篇)