【发布时间】:2021-02-11 20:07:46
【问题描述】:
我遇到了奇怪的问题。
目前我有一个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"
... />
这是字体文件的元数据问题吗?还是我错过了什么?
提前谢谢你。
【问题讨论】: