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

Pet*_*eas 6 android textview android-layout android-softkeyboard android-studio

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

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

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

在此输入图像描述

Pet*_*eas 0

确定布局是否因键盘(消失)出现并对其进行操作而发生变化的最佳位置是onMeasure()根布局内部。

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

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