如何在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
相关产品推荐
相关产品推荐

