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

如何在Jetpack Compose中将行高设置为默认值的倍数?

问题解答

当然可行,你可以通过以下方式实现基于默认行高的倍数设置:

  • 获取默认行高:Compose的Text默认行高由字体本身的lineHeight属性决定,你可以通过LocalTextStyle获取当前上下文的默认文本样式,从中提取默认行高。如果默认样式未明确设置行高,会使用字体内置的默认值。

  • 计算并设置倍数行高:拿到默认行高后,乘以你需要的系数(比如1.2f),再赋值给Text的lineHeight参数。

修改后的示例代码如下:

fun ListItem(
    ritual: Ritual,
    modifier: Modifier = Modifier
) {
    val defaultTextStyle = LocalTextStyle.current
    // 获取默认行高,若未指定则使用字体默认值
    val defaultLineHeight = defaultTextStyle.lineHeight ?: TextStyle.Default.lineHeight
    val scaledLineHeight = defaultLineHeight * 1.2f

    Box(modifier) {
        Text(
            text = ritual.name,
            modifier = Modifier
                .wrapContentSize()
                .padding(
                    start = 16.dp,
                    end = 8.dp,
                    bottom = 20.dp
                ),
            fontSize = 24.sp,
            lineHeight = scaledLineHeight
        )
    }
}

补充说明:

  • 若使用自定义字体,默认行高会跟随该字体的内置行高,上述方法同样适用。
  • 如果defaultLineHeight返回TextUnit.Unspecified,也可以直接用fontSize * 系数来设置行高,这是无特殊字体行高要求时的常用方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:02:01