C'est très étrange que la fondue ne fonctionne pas sur Androidx.
ceci est mon code:
<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" />
le code ci-dessus ne fait pas du tout confiance de la police, lorsque je convertit la TextView en App compact, alors cela fonctionne:
<androidx.appcompat.widget.AppCompatTextView
je voulais mettre ma police d'application entière mais cela ne fonctionne pas comme prévu:
<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>
est-ce qu'il y a un moyen de résoudre ceci ? Comment puis-je utiliser ma police dans une application entière sans régler la famille de polices pour chaque vue?
Vous courez potentiellement dans 1+ de 3 choses:
Android:fontFamily
mais pas définir fontFamily
dans votre thème. Assurez-vous que vous avez les deux:<item name="fontFamily">@font/iransans</item>
<item name="Android:fontFamily">@font/iransans</item>
Si vous utilisez des niveaux d'API plus anciens, vous pouvez rencontrer ce bogue et une mise à niveau de la dépendance Androidx.appCompat pourrait faire le truc:
https://developer.android.com/jetpack/androidx/relases/appcompat#1.0-alpha02
Si vous avez d'autres thèmes définis dans votre styles.xml
, et le parent de votre TextView
utilise un thème séparé, que le thème peut prendre la priorité sur l'attribut fontFamily
sur la vue (je n'ai pas encore déterminé pourquoi, mais c'est le scénario je cours dans moi-même). Régler le Android:theme
directement sur mon TextView
à un style qui définit la famille de polices a fait l'affaire.
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:theme="@style/MyCustomFontTextAppearance" />
dans styles.xml:
<style name="MyCustomFontTextAppearance" parent="TextAppearance.AppCompat.Body1">
<item name="fontFamily">@font/iransans</item>
<item name="Android:fontFamily">@font/iransans</item>
</style>