喷气背包Compose单行输入文本

15

在TextField上是否可以设置singleLine或maxLines呢?

我查了一个来源,但没有找到相关信息。有什么想法/解决方法吗?

3个回答

20
您可以使用参数maxLinessingleLine:
TextField(
    //..
    maxLines = 1)
或者
TextField(
    //..
    singleLine = true)

2
这两者有什么区别吗?在我看来,singleLine 是多余的。 - Daniel Weidensdörfer
我认为Compose中的区别与xml相同。请参见https://dev59.com/JF0Z5IYBdhLWcg3w8kL3 - kc_dev
文档中指出,当 singleLine 设置为 true 时,maxLines 将自动设置为 1。然而,无论如何设置,输入仍然可以接受换行符(例如来自不支持 imeAction 的外部设备或键盘)。 - AplusKminus
singleLine和maxLines=1之间有区别。singleLine = true会强制文本可滚动,而maxLines不会。 - undefined

7
Compose 1.0.0-alpha08起,您可以使用singleLine参数将文本字段变为单行水平可滚动的行:
TextField(
    value = text,
    onValueChange = { },
    singleLine = true
)

-2

我看不到任何可以直接完成它的属性。 一个解决方法可能是:

TextField(
    value = yourText,
    onValueChange = { s: TextFieldValue ->
        if (s.text.count { it == '\n' } < 3) { // 3 lines (or two enters)
            yourText = s
        }
    }
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接