如何使用 WindowInsetsCompat API 检查 API 19 的 ime 可见性?

问题描述

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

我发现的一个解决方案是

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

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

根据 android release notes

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

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

有人可以帮我解决这个问题吗?提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)