Compose中快捷监听软键盘收起弹出状态方法
非compose方法监听软键盘收起
在我们开发compose项目之前就有很多获取软键盘状态的方法,比如如下法1:
fun getImeVisible(activity: Activity, callback: WindowsKeyboardCallback? = null) {
//判断软键盘是否收起
ViewCompat.setOnApplyWindowInsetsListener(activity.window.decorView) {
_, insets ->
val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime())
val imeHeight = insets.getInsets(WindowInsetsCompat.Type.ime()).bottom
callback?.onKeyboardChanged(imeVisible, imeHeight)
WindowInsetsCompat.CONSUMED
}
}
但是这种不适合navigation的多页面路由中使用判断,会导致状态栏显示异常。
方法二:
fun Activity.listenForKeyboardVisibilityChange(callback: (Boolean) -> Unit