很奇怪为什么 fontFamily 不能在 androidX 上工作。
这是我的代码:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="testing "
android:textSize="17sp"
android:fontFamily="@font/iransans"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
上面的代码根本不影响字体,当我将 textview 转换为 app compact 时,它可以工作:
<androidx.appcompat.widget.AppCompatTextView
我想设置我的整个应用程序字体,但它没有按我预期的那样工作:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fontFamily">@font/iransans</item>
</style>
有什么办法可以解决这个问题吗?如何在不为每个 View 设置字体系列的情况下在整个应用程序中使用我的字体?
最佳答案
您可能会遇到 3 件事中的 1 件以上:
android:fontFamily
但未设置 fontFamily
在你的主题中。确保两者都有:<item name="fontFamily">@font/iransans</item>
<item name="android:fontFamily">@font/iransans</item>
https://developer.android.com/jetpack/androidx/releases/appcompat#1.1.0-alpha02
styles.xml
中定义了任何其他主题,以及您的TextView
的父级正在使用单独的主题,该主题可能优先于 fontFamily
View 上的属性(我还没有确定原因,但这是我自己遇到的情况)。设置android:theme
直接在我的TextView
上定义字体系列的样式就可以了。 <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/MyCustomFontTextAppearance" />
在样式.xml 中:
<style name="MyCustomFontTextAppearance" parent="TextAppearance.AppCompat.Body1">
<item name="fontFamily">@font/iransans</item>
<item name="android:fontFamily">@font/iransans</item>
</style>
关于android - fontFamily 无法在 androidx 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58592939/