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

以编程方式单击 jetpack compose 中的文本字段

如何解决以编程方式单击 jetpack compose 中的文本字段

有没有办法以编程方式单击文本字段,以便当我的搜索屏幕弹出时,它会自动单击文本字段并弹出键盘。或者,有没有办法知道文本框的触摸事件?

解决方法

使用 1.0.0(使用 1.0.0-beta07 测试)您可以将焦点放在组件上。
类似的东西:

var text by remember { mutableStateOf(TextFieldValue("text")) }
val focusRequester = FocusRequester()
val keyboardController = LocalSoftwareKeyboardController.current

val interactionSource = remember { MutableInteractionSource() }
val isFocused by interactionSource.collectIsFocusedAsState()

Column {
    TextField(
        value = text,onValueChange = {
            text = it
        },interactionSource = interactionSource,label = { Text("label") },modifier = Modifier
            // add focusRequester modifier
            .focusRequester(focusRequester)
            .onFocusChanged {
                if (isFocused) {
                    keyboardController?.show()
                }
            }
    )
}

然后:

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

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