web-dev-qa-db-ja.com

android] - FontFamily AndroidXで機能していません

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>
 _

これを解決する方法はありますか?各ビューのフォントファミリを設定せずにアプリ全体でフォントを使用する方法は?

8
Navid Abutorab

あなたは潜在的に1つの3つのことに遭遇しています:

  1. テーマに_Android:fontFamily_を設定していますが、fontFamilyを設定していません。両方を持っていることを確認してください。
_<item name="fontFamily">@font/iransans</item>
<item name="Android:fontFamily">@font/iransans</item>
_
  1. 古いAPIレベルで実行している場合は、このバグに遭遇し、Androidx.appcompat依存関係へのアップグレードがトリックを実行する可能性があります。

    https://developer.android.com/jetpack/androidx/releases/appcompat#1.1.0-alpha02

  2. _styles.xml_で定義されている他のテーマがある場合は、TextViewの親が別のテーマを使用している場合、そのテーマはビューでfontFamily属性よりも優先される可能性があります(まだ判断されていませんが、これ私が自分自身に走っているシナリオです。 _Android:theme_を私のTextViewで直接設定して、フォントファミリを定義したスタイルをトリックしました。

_<TextView
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:theme="@style/MyCustomFontTextAppearance" />
_

style.xmlで:

_<style name="MyCustomFontTextAppearance" parent="TextAppearance.AppCompat.Body1">
    <item name="fontFamily">@font/iransans</item>
    <item name="Android:fontFamily">@font/iransans</item>
</style>
_
1
Barryrowe