我在 Jetpack Compose 中使用 TextField 组件。 获得焦点时如何选择所有文本?
答案 0 :(得分:5)
在这种情况下,您应该使用 TextFieldValue
作为 TextField
的状态,当它获得焦点时,您使用 selection
状态设置 TextFieldValue
。
val state = remember {
mutableStateOf(TextFieldValue(""))
}
TextField(
value = state.value,
onValueChange = { text -> state.value = text },
modifier = Modifier
.onFocusChanged { focusState ->
if (focusState.isFocused) {
val text = state.value.text
state.value = state.value.copy(
selection = TextRange(0, text.length)
)
}
}
)
结果如下:
请注意,根据您触摸的情况,光标会转到触摸的位置,而不是选择整个文本。您可以尝试弄清楚这是错误还是功能:)