You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Compose:实现Row内首文本换行且优先溢出的布局

解决Compose中Row内双文本的优先溢出布局需求

你需要的效果可以通过给第一个Text添加Modifier.weight(1f, fill = false)来实现,同时配合正确的换行与溢出设置,具体代码如下:

Row(
    modifier = Modifier.fillMaxWidth(),
    verticalAlignment = Alignment.CenterVertically
) {
    Text(
        text = title,
        modifier = Modifier.weight(1f, fill = false),
        softWrap = true,
        overflow = TextOverflow.Visible
    )

    Text(
        text = "Fixed text",
        maxLines = 1,
        overflow = TextOverflow.Ellipsis
    )
}

关键说明:

  • weight(1f, fill = false):这是核心设置,weight(1f)让第一个文本在空间紧张时优先分配可用空间,确保它先换行或溢出;fill = false则避免空间充足时第一个文本强行撑满宽度,让第二个文本能紧跟在第一个文本之后。
  • 第一个Text开启softWrap = true支持自动换行,overflow可根据需求选择Visible(直接溢出)或Ellipsis(显示省略号)。
  • 第二个Text通过maxLines = 1限制单行显示,只有当第一个文本完全占满宽度后,它才会被挤压溢出。

对比之前方案的问题:

  • 方案a:未设置weight,布局会优先保证第二个文本的完整显示,空间不足时第二个文本先溢出,不符合需求。
  • 方案b:使用了默认fill = true的weight,导致空间充足时第一个文本强制撑满宽度,第二个文本被挤到最右侧,无法紧跟第一个文本。

内容的提问来源于stack exchange,提问作者Eyjafl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:30:54