LocalFocusManager
清除或移动焦点
val focusRequester = remember { FocusRequester() }
var focusManager = LocalFocusManager.current
LaunchedEffect(isShow) {
if(isShow) {
focusRequester.requestFocus()
}
}
BasicTextField(value = inputVal, onValueChange = {
inputVal = it
}, modifier = Modifier.padding(end = 10.dp).focusRequester(focusRequester))
Button(onClick = {
focusManager.clearFocus() //清除当前有焦点
})
focusManager.moveFocus(FocusDirection.Right) //将焦点移动到右边的元素上,还有其它方向:Next、Previous、Left、Up、Down、Enter、Exit
LocalSoftwareKeyboardController
弹出或收起软键盘
可能为null的原因:当前没有弹出软键盘、不支持软键盘的UI组件、获得焦点后没有引发软键盘显示
var keyboardController = LocalSoftwareKeyboardController.current
BasicTextField(value = inputVal, onValueChange = {
inputVal = it
})
Button(onClick = {
keyboardController?.hide() //有可能为null,所以要用?操作符
})