如何限制键盘 Enter 键不允许在下一行输入(Android Jetpack Compose 中的 TextField)

Kir*_*ran 8 android kotlin android-jetpack-compose android-compose-textfield

在 Android 模拟器中,使用计算机键盘输入,但我键盘上的“Enter”键应该接受输入并执行操作。相反,输入允许我进入下一行,并继续继续下一行(作为新行字符)。请在 TextField 元素的 Android Jetpack Composable 中向我建议您的答案。

Nik*_*nna 12

嘿,您可以在文本字段中使用singleLine = true,要在键盘中单击完成/输入键时执行任何自定义操作,您可以使用类似的东西

    TextField(
    value = text,
    onValueChange = {text = it},
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { /* do something */},
    onGo = { /* do something */},
    onNext = { /* do something */},
    onPrevious = { /* do something */},
    onSearch = { /* do something */},
    onSend = { /* do something */})
)
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 5

您可以添加singleLine = true以避免新行。

您还可以使用onKeyEvent修饰符拦截 ENTER 并执行自定义操作。您还可以使用该属性对键盘中的完成键应用相同的操作KeyboardActions

就像是:

TextField(
    value = text,
    onValueChange = {text = it},
    singleLine = true ,
    keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
    keyboardActions = KeyboardActions(
        onDone = { /* do something */}
    ),
    modifier = Modifier.onKeyEvent {
        if (it.key == Key.Enter){
            /* do something */
            true
        }
        false
    }
)
Run Code Online (Sandbox Code Playgroud)