我的目标是实现大多数消息应用程序,如Facebook Messenger,Viber,显示附件表时的功能。如果软键盘可见并且用户想要附加某些东西,则隐藏键盘并将附件页显示在其位置。
为了使其工作,布局更改应在根视图大小更改时发生。否则,在显示/隐藏键盘之前不久应用布局更改的位置会出现图形毛刺。
如果我可以在键盘被隐藏的确切时刻改变我的布局,我可以把它弄好。我尝试过使用onGlobalLayoutListener
但没有达到预期的结果。
答案 0 :(得分:0)
在活动清单中添加此行。
<activity
android:name="com.your.Activity"
android:windowSoftInputMode="stateHidden|adjustPan" />
答案 1 :(得分:0)
使用此代码这将是有帮助的。
android:windowSoftInputMode="adjustNothing"
答案 2 :(得分:0)
查看根据键盘(dis)出现并根据更改操作而更改布局的最佳位置是根布局的onMeasure()
内。
更详细地说,我制作了一个自定义的LinearLayout,用作我的根布局。我覆盖了onMeasure
和我calculate当前的键盘高度。根据键盘的高度以及我的附件网格是否可见,我更改了附件网格的可见性。我甚至可以将网格的高度设置为与键盘相同。
结果看起来网格始终位于键盘下方,文本视图保持在同一垂直位置。