Android - 如何在键盘可见性发生变化时仅调整某些视图的大小

Android - How to resize only certain views when keyboard visibility changes

我有一个 Activity 包含三个 Fragment,它们由底部的 Tabs 控制。

其中一个片段需要键盘,所以我想在键盘可见时调整片段回收器视图的大小,以便回收器视图中的最后一项在键盘上方可见(滚动后)。

但是如果在 AndroidManifest.xml 中,我指定

android:windowSoftInputMode="adjustResize"

android:windowSoftInputMode="adjustPan"

底部的标签也可以在键盘上方看到。

我什至尝试使用 OnGlobalLayoutListener 检查键盘何时可见,然后相应地调整回收器视图的高度。但这也行不通,因为 OnGlobalLayoutListener 仅在 android:windowSoftInputMode="adjustPan"android:windowSoftInputMode="adjustResize" 被使用,这违背了这种情况下的目的。

有什么方法可以使 Fragment 的视图是 resized/adjusted 而不是 activity 视图(底部标签)?

谢谢

我就是这样解决的。

键盘更改在 OnGlobalLayoutListener 中收到,当时

android:windowSoftInputMode="adjustPan"

而且它也不会将底部的标签推到键盘上方。

因此,它解决了手头的问题。

谢谢