Compose中Text组件为何总是需要额外高度显示文本?如何实现文本与组件边缘紧密贴合?
Compose中Text组件为何总是需要额外高度显示文本?如何实现文本与组件边缘紧密贴合?
我最近用Kotlin Compose开发Android应用时,碰到了个挺闹心的问题:想让Text组件里的文本和组件边缘紧紧贴合,完全不要多余的空白,但试了好几种方式都没达到理想效果。
先给大家看看我目前的代码:
@Composable fun pixelToSp(px: Int): TextUnit { return (px / (LocalDensity.current.density * LocalConfiguration.current.fontScale)).sp } Text(text = "Á哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈gÁ哈g", Modifier .fillMaxWidth() .border(1.dp, Color.Red) , style = TextStyle( fontFamily = FontFamily.Default, fontSize = pixelToSp(250), ), color = Color.Green )
我做了这些尝试和观察:
- 我粗略测量了文本高度,发现设置的250px容器完全没法把文本装进去
- 后来把
lineHeight设成和fontSize一样大,结果文本直接超出红色边框,出现了重叠 - 还有个奇怪的点:文本和Text组件边缘之间总有一块莫名的高度,我试着把基线调整+0.3f虽然能改善,但感觉这不是官方推荐的正确做法
我现在的需求很明确:既不想有多余的空白高度,也不想文本和边框重叠,有没有靠谱的解决办法呀?
备注:内容来源于stack exchange,提问作者哇哈哈
相关产品推荐
相关产品推荐

