Android - 应用 TextStyle“粗体”删除自定义字体设置

时间:2021-02-11 20:07:46

标签: android fonts textview

我遇到了奇怪的问题。

目前我有一个 TextView 使用我的风格

<TextView
    style="@style/MyText"
    ... />

styles.xml中,

<style name="MyText" parent="android:TextAppearance">
    <item name="fontFamily">@font/noto_sans_kr</item>
    <item name="android:fontFamily">@font/noto_sans_kr</item>
</style>

最后,这是我的 noto_sans.kr.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
    <font
        app:font="@font/noto_sans_cjk_kr_regular"
        app:fontStyle="normal"
        app:fontWeight="400" />
    <font
        app:font="@font/noto_sans_cjk_kr_bold"
        app:fontStyle="normal"
        app:fontWeight="700" />
</font-family>

这工作得很好。我看到了我的自定义字体,即使系统使用了自定义字体,它也只使用我在应用中设置的字体。

但是,当我将 android:textStyle 属性应用于 TextView 时,会发生奇怪的事情。

<TextView
    style="@style/MyText"
    android:textStyle="bold"
    ... />

从 Android Studio 为我提供正确的设计预览,但是一旦我启动应用程序,TextView 就会使用我设置的系统字体,而不是 noto sans。

现在,如果我不使用 textStyle 而直接使用 noto_sans_bold 字体文件,它工作得很好。

<TextView
    fontFamily="@font/noto_sans_cjk_kr_bold"
    ... />

这是字体文件的元数据问题吗?还是我遗漏了什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在您的 XML 文件中一起使用字体系列和文本样式属性

<TextView
    fontFamily="@font/noto_sans_cjk_kr_bold"
    android:textstyle="bold"
    ... />
相关问题