我遇到了奇怪的问题。
目前我有一个 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"
... />
这是字体文件的元数据问题吗?还是我遗漏了什么?
提前致谢。
答案 0 :(得分:0)
在您的 XML 文件中一起使用字体系列和文本样式属性
<TextView
fontFamily="@font/noto_sans_cjk_kr_bold"
android:textstyle="bold"
... />