Jetpack Compose textField 上的 maxlines 不起作用

Nun*_*ial 13 kotlin android-jetpack-compose android-compose-textfield

我正在制作一个待办事项应用程序,当我编写待办事项时,我只放置了 1 行,但是当我单击 Enter 时,它会创建一个新行,有什么方法可以修复它吗?

@Composable
fun TextFieldDemo() {
        Column(
            Modifier
                .padding(50.dp, 600.dp, 0.dp, 0.dp)
                .fillMaxHeight()) {
            val textState = remember { mutableStateOf(TextFieldValue()) }
            TextField(
                value = textState.value,
                onValueChange = { textState.value = it },
                label = {Text(text = "What you need Todo?")},
                singleLine = true //apenas uma linha de texto , podendo usar-se tambem singleLine = true

            )

        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 10

只需设置maxLines = 1并为我singleLine = true检测\n工作onValueChange

@Composable
fun SearchBar() {
            BasicTextField(
                textValue,
                onValueChange = {
                    if (!it.text.contains("\n"))
                        textValue = it
                },
                maxLines = 1,
                singleLine = true,
            )
}
Run Code Online (Sandbox Code Playgroud)


Fra*_*esc 0

在值更改回调中,您可以检查文本并过滤掉新行字符。

onValueChange = {
    textState.value = /* filter invalid chars from it */
},
Run Code Online (Sandbox Code Playgroud)