Jetpack 撰写单行输入文本

Posted

技术标签:

【中文标题】Jetpack 撰写单行输入文本【英文标题】:Jetpack Compose SingleLine Input Text 【发布时间】:2020-11-03 18:29:33 【问题描述】:

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

我检查了一个来源,但它不见了。有什么想法/解决方法吗?

【问题讨论】:

【参考方案1】:

对于1.0.x,您可以使用参数maxLinessingleLine

TextField(
    //..
    maxLines = 1)

TextField(
    //..
    singleLine = true)

【讨论】:

这两者有什么区别吗?在我看来,singleLine 是多余的。 我假设 Compose 的差异与 xml 的差异相同。见***.com/questions/30879471/…【参考方案2】:

由于Compose 1.0.0-alpha08,您可以使用singleLine 参数使文本字段成为单个水平滚动行:

TextField(
    value = text,
    onValueChange =  ,
    singleLine = true
)

【讨论】:

【参考方案3】:

我看不到任何可以直接执行此操作的属性。 一种解决方法可能是:

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

【讨论】:

以上是关于Jetpack 撰写单行输入文本的主要内容,如果未能解决你的问题,请参考以下文章

迁移到 Jetpack 撰写错误:不允许未绑定符号

TextField maxLength - Android Jetpack 撰写

Jetpack Compose 在 TextField 中对齐输入文本

Kotlin jetpack compose 文本输入框ExitText/TextField remember 居然可以传两个参数

Wear OS 上 Jetpack Compose 中的 BasicTextField 问题

Jetpack Compose 文本超链接