Jetpack Compose maxlines на textField не работает
Привет, ребята, я делаю 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
)
}
}
3 ответа
Просто установите
maxLines = 1
а также
singleLine = true
, обнаружить
\n
на
onValueChange
работать на меня
@Composable
fun SearchBar() {
BasicTextField(
textValue,
onValueChange = {
if (!it.text.contains("\n"))
textValue = it
},
maxLines = 1,
singleLine = true,
)
}
Начиная с Compose 1.0.0-alpha07, вы можете использовать
maxLines
чтобы ограничить максимальное количество строк в текстовом поле:
TextField(
onValueChange = { },
maxLines = 1
)
В обратном вызове с измененным значением вы можете проверить текст и отфильтровать символ новой строки.
onValueChange = {
textState.value = /* filter invalid chars from it */
},