小编Shr*_*til的帖子

Android Jetpack Compose:修改输入文本后键盘从数字更改为字母

在探索TextFieldJetpack Compose 时,我遇到了一种情况,我必须修改在字段中键入的输入。例如,输入3个字符后添加逗号

我就是这样做的。

@Composable
fun TFDemo() {
    var fieldValue by remember { mutableStateOf(TextFieldValue("")) }

    TextField(
        value = fieldValue,
        onValueChange = {
            val newMessage = it.text.let { text -> if (text.length == 3) "$text," else text }
            fieldValue = it.copy(newMessage, selection = TextRange(newMessage.length))
        },
        keyboardOptions = KeyboardOptions(autoCorrect = false),
    )
}
Run Code Online (Sandbox Code Playgroud)

但运行后,我意识到添加逗号后,键盘视图从数字/符号变回字母,但事实不应该如此。为清楚起见,请参阅下面的视频输出

正如您在下面的视频中看到的,当我输入“111”时,附加了逗号,突然键盘的数字视图再次变为字母。

Jetpack Compose:键盘更改问题


这里我修改了selectionof ,TextFieldValue以便每当附加逗号时光标始终位于消息的末尾。

user-interface android textfield android-layout android-jetpack-compose

8
推荐指数
2
解决办法
1956
查看次数