显示或隐藏Android软键盘时调整布局

时间:2016-02-23 18:39:07

标签: android android-layout android-studio textview android-softkeyboard

我的目标是实现大多数消息应用程序,如Facebook Messenger,Viber,显示附件表时的功能。如果软键盘可见并且用户想要附加某些东西,则隐藏键盘并将附件页显示在其位置。

为了使其工作,布局更改应在根视图大小更改时发生。否则,在显示/隐藏键盘之前不久应用布局更改的位置会出现图形毛刺

如果我可以在键盘被隐藏的确切时刻改变我的布局,我可以把它弄好。我尝试过使用onGlobalLayoutListener但没有达到预期的结果。

enter image description here

3 个答案:

答案 0 :(得分:0)

在活动清单中添加此行。

 <activity
        android:name="com.your.Activity"
        android:windowSoftInputMode="stateHidden|adjustPan" />

答案 1 :(得分:0)

使用此代码这将是有帮助的。

android:windowSoftInputMode="adjustNothing"

答案 2 :(得分:0)

查看根据键盘(dis)出现并根据更改操作而更改布局的最佳位置是根布局的onMeasure()内。

更详细地说,我制作了一个自定义的LinearLayout,用作我的根布局。我覆盖了onMeasure和我calculate当前的键盘高度。根据键盘的高度以及我的附件网格是否可见,我更改了附件网格的可见性。我甚至可以将网格的高度设置为与键盘相同。

结果看起来网格始终位于键盘下方,文本视图保持在同一垂直位置。