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

如何让增长的Text Composable在指定文本长度时可滚动?

让Text达到指定长度时启用物理滚动

要实现文本达到指定长度就允许滚动(无需等触及容器边界),可以用以下两种方案:

方案一:基于文本宽度精确触发滚动

通过预测量指定长度文本的宽度,将Text的最大宽度限制为该值,当文本长度超过指定值时,自然超出限制宽度,从而激活滚动:

val scrollState = rememberScrollState(0)
val textMeasurer = rememberTextMeasurer()
// 设置触发滚动的文本长度阈值
val triggerCharCount = 10

// 预计算指定长度文本的宽度
val triggerWidth = textMeasurer.measure(
    text = growingText.take(triggerCharCount),
    style = TextStyle(color = Color.Gray)
).size.width

Text(
    text = growingText,
    modifier = Modifier
        .widthIn(max = triggerWidth.toDp())
        .horizontalScroll(scrollState),
    color = Color.Gray
)

方案二:基于字符数动态控制滚动可用性

直接根据文本字符数判断是否启用滚动,同时给Text设置最小宽度保证滚动交互有效:

val scrollState = rememberScrollState(0)
// 设置触发滚动的文本长度阈值
val triggerCharCount = 10
val isScrollEnabled = growingText.length >= triggerCharCount

Text(
    text = growingText,
    modifier = Modifier
        .horizontalScroll(scrollState, enabled = isScrollEnabled)
        // 可选:设置最小宽度,确保滚动激活时有交互空间
        .widthIn(min = 120.dp),
    color = Color.Gray
)
  • 方案一精准匹配指定长度文本的宽度,适合对滚动触发时机有严格视觉要求的场景
  • 方案二更简洁,适合仅需基于字符数判断的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:50:40