为什么 Jetpack Compose 不将按钮中的文本大写?

Sea*_*ean 7 android android-jetpack-compose

文档似乎认为按钮应该全部大写https://developer.android.com/reference/kotlin/androidx/compose/material/Typography#button但实际上并非如此。(使用 1.0.0-beta01)

如何更改我的主题以使按钮文本大写?

Ste*_*one 9

TextStyle 类中似乎还没有允许您设置大写的属性。我发现的唯一解决方法是修改我的 Typography 主题button并使用TextStyle的fontFeatureSettings属性将小型大写字母设置为所有字符fontFeatureSettings = "c2sc, smcp"

例子Typography.kt

val Typography = Typography(
    button = TextStyle(
        fontFamily = FontFamily.Default,
        fontWeight = FontWeight.W500,
        fontSize = 16.sp,
        fontFeatureSettings = "c2sc, smcp"
    )
)
Run Code Online (Sandbox Code Playgroud)

来自文档

字体提供的高级排版设置。格式与 CSS font-feature-settings 属性相同:https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop

CSS font-variant 属性的注释

在小型大写字体中,所有小写字母都会转换为大写字母。但是,转换后的大写字母以比文本中原始大写字母更小的字体大小显示。

这不是一个非常漂亮的解决方案,但它确实很重要。测试用1.1.0-alpha01