textField上的Jetpack Compose最大行数不起作用



我正在制作一个todoapp,当我编写todo时,我只设置了一行,但当我单击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
)
}
}

只需设置maxLines = 1singleLine = true,在onValueChange上检测n即可为我工作

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

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

onValueChange = {
textState.value = /* filter invalid chars from it */
},

由于Compose 1.0.0-alpha07,您可以使用maxLines来限制文本字段的最大行数:

TextField(
onValueChange = {  },
maxLines = 1
)

相关内容

最新更新