【问题标题】:Jetpack Compose SingleLine Input TextJetpack 撰写单行输入文本
【发布时间】:2026-02-26 16:10:02
【问题描述】:

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

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

【问题讨论】:

    标签: android kotlin textfield android-jetpack android-jetpack-compose


    【解决方案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
              }
          }
      )
      

      【讨论】: