给根节点一个Modify,当检测到触摸的时候,调用键盘管理器,隐藏键盘
@OptIn(ExperimentalComposeUiApi::class)
fun Modifier.autoCloseKeyboard(): Modifier = composed {
//LocalSoftwareKeyboardController 这个是compose 组件,必须在compose 函数内才能使用
val keyboardController = LocalSoftwareKeyboardController.current
pointerInput(this) {
detectTapGestures(
onPress = {
keyboardController?.hide()
}
)
}
}
由于点击空白区域不是发生在TextField 区域内,它只能检测到焦点是否被移除。
WindowInsets.isImeVisible //软键盘是否存在
val localFocusManager = LocalFocusManager.current //焦点控制器