如何移除Jetpack Compose中文本的垂直内边距?
解决Compose文本垂直内边距无法移除的问题
已经试过PlatformTextStyle(includeFontPadding = false)和升级Compose库都没用?试试这几个办法:
强制行高与字号一致
直接给Text设置和字号相等的lineHeight,把垂直方向的额外间距压平:Text( text = "目标文本", style = TextStyle( fontSize = 16.sp, lineHeight = 16.sp, platformStyle = PlatformTextStyle(includeFontPadding = false) ) )手动控制文本绘制逻辑
如果上面的方法还达不到要求,用Canvas直接绘制文本,跳过Compose默认的内边距计算:Canvas(modifier = Modifier.size(IntrinsicSize.Min)) { val textMeasurer = rememberTextMeasurer() val textLayout = textMeasurer.measure( text = "目标文本", style = TextStyle(fontSize = 16.sp) ) drawText( textLayoutResult = textLayout, topLeft = Offset(0f, textLayout.firstBaseline) ) }这种方式能彻底控制文本的绘制位置,完全消除额外内边距。
检查字体自身的间距
有些字体本身就内置了上下间距,换用更紧凑的字体,或者用字体编辑工具调整字体的行高、字距参数也能解决问题。
内容的提问来源于stack exchange,提问作者Windusk
相关产品推荐
相关产品推荐

