为什么 Jetpack Compose-beta08 中可组合的 Text("") 的 fontSize 中只有“.sp”而没有“.dp”

问题描述 投票:0回答:3

我希望文本的大小为

.dp
,这样它就不会根据系统字体而改变。 如何在 Jetpack Compose“文本”可组合项中实现此目的

android android-jetpack android-jetpack-compose composable
3个回答
26
投票

Compose 团队并不打算提供这种可能性,

em
使用起来有点皮塔饼,但如果有人真正需要它,有一个简单的解决方法。

@Composable
fun dpToSp(dp: Dp) = with(LocalDensity.current) { dp.toSp() }

Text("ABCD", fontSize = dpToSp(15.dp))

取自同一问题跟踪器:https://issuetracker.google.com/190644747


4
投票

您可以使用扩展属性:

private fun Int.textDp(density: Density): TextUnit = with(density) {
    [email protected]()
}


val Int.textDp: TextUnit
    @Composable get() =  this.textDp(density = LocalDensity.current)

0
投票
@Composable
fun Int.textDp() = with(LocalDensity.current) { [email protected]() }
© www.soinside.com 2019 - 2024. All rights reserved.