簡體   English   中英

textField 上的 Jetpack Compose maxlines 不起作用

[英]Jetpack Compose maxlines on textField is not working

我正在制作一個待辦事項應用程序,當我編寫待辦事項時,我只放置了 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

            )

        }
    }

只需設置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
)

maxLines 用於限制TextField的高度例如maxLines = 7,意味着TextField最大高度僅為7行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM