微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Jetpack Compose 中选择 TextField 的所有文本

如何解决在 Jetpack Compose 中选择 TextField 的所有文本

我在 Jetpack Compose 中使用 TextField 组件。 获得焦点时如何选择所有文本?

解决方法

在这种情况下,您应该使用 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)
                )
            }
        }
)

结果如下:

enter image description here

请注意,根据您触摸的情况,光标会转到触摸的位置,而不是选择整个文本。您可以尝试弄清楚这是错误还是功能:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。