Administrator
Administrator
Published on 2025-04-27 / 10 Visits
0
0

LocalFocusManager和LocalSoftwareKeyboardController

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,所以要用?操作符
})


Comment