1
votes

Problème de police personnalisée dans la mise à jour Android Q 10.0 ne peut pas utiliser la police de fichier ttf téléchargée dans la vue EditText et Text

J'ai essayé toutes les options mentionnées dans les liens ci-dessous https://medium.com/programming-lite/using-custom-font-as-resources-in-android-app-6331477f8f57 https://medium.com/@suragch/ utilisation-d'une-police-personnalisée-dans-votre-application-android-cc4344b977a5

Mais quand même, l'application se bloque ne peut pas utiliser la police personnalisée Erreur de gonflage de la classe EditText mais si je supprime la police personnalisée, cela fonctionne bien


0 commentaires

3 Réponses :


1
votes

J'ai pu contourner ce problème en divisant mon fichier de ressources de polices en deux en fonction de la version de l'API, où l'api 26+ utilise simplement les attributs android:font* et en dessous de l'api 26, nous utilisons les attributs app:font* :

app / src / main / res / font / source_sans_pro.xml

<font-family xmlns:android="http://schemas.android.com/apk/res/android">   
    <!-- light -->
    <font
            android:font="@font/source_sans_pro_light"
            android:fontStyle="normal"
            android:fontWeight="300" />

    <font
            android:font="@font/source_sans_pro_light_italic"
            android:fontStyle="italic"
            android:fontWeight="300" />

    <!-- normal -->
    <font
            android:font="@font/source_sans_pro_regular"
            android:fontStyle="normal"
            android:fontWeight="400" />
    <font
            android:font="@font/source_sans_pro_regular_italic"
            android:fontStyle="italic"
            android:fontWeight="400" />

    <!-- bold -->
    <font
            android:font="@font/source_sans_pro_semibold"
            android:fontStyle="normal"
            android:fontWeight="500" />
    <font
            android:font="@font/source_sans_pro_semibold_italic"
            android:fontStyle="italic"
            android:fontWeight="500" />   
</font-family>

app / src / main / res / font-v26 / source_sans_pro.xml

<font-family xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- light -->
    <font
            app:font="@font/source_sans_pro_light"
            app:fontStyle="normal"
            app:fontWeight="300" />

    <font
            app:font="@font/source_sans_pro_light_italic"
            app:fontStyle="normal"
            app:fontWeight="300" />

    <!-- normal -->
    <font
            app:font="@font/source_sans_pro_regular"
            app:fontStyle="normal"
            app:fontWeight="400"/>
    <font
            app:font="@font/source_sans_pro_regular_italic"
            app:fontStyle="italic"
            app:fontWeight="400"
            />

    <!-- bold -->
    <font
            app:font="@font/source_sans_pro_semibold"
            app:fontStyle="normal"
            app:fontWeight="500"/>
    <font
            app:font="@font/source_sans_pro_semibold_italic"
            app:fontStyle="italic"
            app:fontWeight="500"/>    

Je ne l'ai pas encore suivi jusqu'à une mise à jour d'Android Q ou s'il s'agit d'un bogue dans l'une des versions les plus récentes d'Androidx. Je crois qu'il s'agit d'une régression ou d'un nouveau bogue dans appcompat 1.2.0-alpha03 ou dans le matériel 1.1.0


0 commentaires

0
votes

J'ai rencontré un problème similaire, ce que j'ai fait est - supprimer le fichier xml et utiliser directement le nom de la police (sans extension) qui était dans ttf. exemple -

android:fontFamily="@font/comfortaa_bold"

android:fontFamily="@font/comfortaa_italic"


0 commentaires

0
votes

Si nous utilisons l'option de police EditText via une erreur dans la mise à jour Q, utilisez donc AppCompactEditText pour accepter la contrainte fort directement dans la page XML


0 commentaires