首页 > 解决方案 > Jetpack Compose Text 组件中的等宽数字

问题描述

我在我的 Jetpack Compose 应用程序中使用自定义字体,并希望将特定文本组件中的数字等宽。

使用标准的 Android TextView,这可以使用fontFeatureSetting="tnum"属性 ( https://stackoverflow.com/a/41143337/2521749 ) 来完成。

如何使用 Jetpack Compose 做到这一点?

倒计时时钟

标签: android-jetpack-composeandroid-jetpack-compose-text

解决方案


buildAnnotatedString需要自定义字符串的不同部分。

如果需要对整体应用一些文本样式Text,可以使用style参数。

Text(
    text = String.format(Locale.ROOT, "%02d:%02d", mins, secs),
    style = LocalTextStyle.current.copy(fontFeatureSettings = "tnum"),
)

我在LocalTextStyle.current这里使用,这是 的默认样式Text,但是您可以将其替换为您需要的样式,例如您的主题排版之一:MaterialTheme.typography.h4


推荐阅读