如何打开光标闪烁的BasicTextField



我的一个视图中有一个BasicTextField。默认情况下,我显示的是软键盘,当我开始在键盘上键入字母时,BasicTextField中不会显示任何内容,因为它没有光标。

为了使我的键盘操作可见,我必须点击TextField,使光标可见。现在,当我敲击键盘时,我会在BasicTextField中看到结果。

如何打开带有活动闪烁光标的BasicTextField?

编辑:这里提出的解决方案对我不起作用

val focusRequester = FocusRequester()
val keyboardController = LocalSoftwareKeyboardController.current
//..
.focusRequester(focusRequester)
.onFocusChanged {
if (it.isFocused) {
keyboardController?.show()
}
}

既没有激活光标,也没有显示键盘。除了

DisposableEffect(Unit) {
focusRequester.requestFocus()
onDispose { }
}

导致崩溃:

java.lang.IollegalStateException:FocusRequester未初始化。以下是一些可能的修复方法:

1. Remember the FocusRequester: val focusRequester = remember { FocusRequester() }
2. Did you forget to add a Modifier.focusRequester() ?
3. Are you attempting to request focus during composition? Focus requests should be made in
response to some event. Eg Modifier.clickable { focusRequester.requestFocus() }
at androidx.compose.ui.focus.FocusRequester.requestFocus(FocusRequester.kt:54)

我开始工作了:

val focusRequester = FocusRequester()
//..
.focusRequester(focusRequester)

而不是

DisposableEffect(Unit) {
focusRequester.requestFocus()
onDispose { }
}

我使用

LaunchedEffect(Unit) {
focusRequester.requestFocus()
}

最新更新