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

Android Jetpack Compose实现文本触容器边界自动省略效果

在Jetpack Compose中实现类似TableLayout shrinkColumns的文本省略效果

要实现「文本默认wrap_content布局,空间不足时自动省略,同时右侧文本始终显示」的效果,只需给左侧文本添加Modifier.weight(1f, fill = false)即可,核心是利用weight分配剩余空间,同时通过fill=false保留wrap_content的特性。

修改后的代码

Row(modifier = Modifier.fillMaxWidth()) {
    Text(
        modifier = Modifier
            .background(Color.Cyan)
            .weight(1f, fill = false), // 关键配置
        text = "Weekend Weekend Weekend Weekend Weekend Weekend ",
        maxLines = 1,
        overflow = TextOverflow.Ellipsis
    )
    Text(
        modifier = Modifier
            .background(Color.Red),
        text = "(0)"
    )
}

原理说明

  • weight(1f):让左侧文本占据Row中除右侧文本外的所有剩余空间,确保右侧文本优先获得所需的显示空间,不会被挤出。
  • fill = false:默认fill=true会强制组件占满分配的空间,而fill=false时,只有当文本内容超过分配空间时才会填充该空间,内容较短时保持wrap_content的布局,完美匹配XML中shrinkColumns的行为。
  • 配合maxLines=1和overflow=TextOverflow.Ellipsis,当文本超出分配空间时自动在末尾显示省略号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:25:20