1

我正在尝试使用 WindowInsetsCompat API 检查软键盘是否可见。

我发现的一种解决方案是

val insets = ViewCompat.getRootWindowInsets(view)
val isKeyboardVisible = insets?.isVisible(Type.ime())

但是这个getRootWindowInsets(view)函数只适用于API >= 23。对于较低的 API,它总是返回null.

根据 android发行说明

WindowInsetsCompat API 已更新为 Android 11 平台中的 API。这包括新的 ime() 插入类型,它允许检查屏幕键盘的可见性和大小。
关于 ime() 类型的一些注意事项,当您的 Activity 使用 adjustResize 窗口软输入模式时,它在 API 23+ 上非常可靠地工作。如果您改用 adjustPan 模式,它应该可以可靠地返回到 API 14。

它说 ime() 类型在使用 adjustPan 时应该可靠地返回 API 14。我正在使用 19 的 minSdk 并且无法确定使用哪些函数来检查 ime 可见性。

有人可以帮我吗?提前致谢。

4

0 回答 0