Wal*_*ann 3 keyboard android focus textfield android-jetpack-compose
我想显示一个对话框并自动将焦点设置到 OutlinedTextField,以便用户可以立即开始输入。
我最终得到的文本字段确实获得焦点,光标确实闪烁,但键盘仍然隐藏。因此,用户仍然必须单击文本字段才能显示键盘。我是这样做的
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
OutlinedTextField(
value = text,
modifier = Modifier
.focusRequester(focusRequester)
.fillMaxWidth(),
onValueChange = {
text = it
}
)
Run Code Online (Sandbox Code Playgroud)
要使键盘显示,您应该在请求焦点之前设置延迟:
LaunchedEffect(Unit) {
delay(200)// <-- This is crucial.
focusRequester.requestFocus()
}
OutlinedTextField(
value = text,
modifier = Modifier
.focusRequester(focusRequester)
.fillMaxWidth(),
onValueChange = {
text = it
}
)
Run Code Online (Sandbox Code Playgroud)
延迟时间可能会改变。对我来说,它从 100 毫秒开始工作。如果200还是不行,就增加到可以为止。我相信这完全取决于设备的性能,因此延迟越高,可以使用的设备越慢。
| 归档时间: |
|
| 查看次数: |
3858 次 |
| 最近记录: |