我的观点之一是有一个BasicTextField
。默认情况下,我显示的是软键盘,当我开始在键盘上键入字母时,BasicTextField
中没有显示任何内容,因为它没有光标。
要使我的键盘操作可见,我必须点击TextField,使光标可见。现在,whenI点击键盘,我在BasicTextField
中看到了结果。
如何打开带有活动闪烁光标的BasicTextField?
编辑:proposed solution from here不适合我
val focusRequester = FocusRequester()
val keyboardController = LocalSoftwareKeyboardController.current
//..
.focusRequester(focusRequester)
.onFocusChanged {
if (it.isFocused) {
keyboardController?.show()
}
}
既没有激活光标,也没有使键盘出现。除此之外,
DisposableEffect(Unit) {
focusRequester.requestFocus()
onDispose { }
}
导致坠机:
java.lang.IllegalStateException: FocusRequester未初始化。以下是一些可能的解决办法:
1.记住FocusRequester: val focusRequester =记住{ FocusRequester() } 2。您忘记添加Modifier.focusRequester()了吗? 3。您是否试图在组合过程中请求焦点?应针对某些事件提出重点要求。在androidx.compose.ui.focus.FocusRequester.requestFocus(FocusRequester.kt:54)上的Modifier.clickable { focusRequester.requestFocus() }
发布于 2022-03-18 20:21:26
我让它起作用了
val focusRequester = FocusRequester()
//..
.focusRequester(focusRequester)
而不是
DisposableEffect(Unit) {
focusRequester.requestFocus()
onDispose { }
}
我用过
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
https://stackoverflow.com/questions/71498645
复制相似问题