Pour mettre en œuvre thématisation, je défini attribue mon style personnalisé pour éviter les styles du système prépondérantsaccident étrange « android.view.InflateException: ligne fichier XML binaire # 9: Classe d'erreur de gonflage <unknown> » à propos de déclarer-styleable
thèmes. xml
<declare-styleable name="MyThemeBase">
<attr name="myTextColorHighlight" format="reference|color"/>
</declare-styleable>
<style name="MyThemeBase" parent="@style/Theme.AppCompat.Light">
...
</style>
<style name="MY.Theme.AppCompat.Light.Orange" parent="SCThemeBase">
<item name="myTextColorHighlight">@color/textcolor_highlight_orange</item>
</style>
<style name="MY.Theme.AppCompat.Light.Blue" parent="SCThemeBase">
<item name="myTextColorHighlight">@color/textcolor_highlight_blue</item>
</style>
J'ai aussi Defined TextAppearance personnalisé styles.xml
<style name="My.TextAppearance.Medium" parent="@android:style/TextAppearance.Medium">
<!-- this line caused crash -->
<item name="android:textColor">?attr/myTextColorHighlight</item>
<!-- this worked -->
<!--<item name="android:textColor">@color/textcolor_highlight_orange</item>-->
</style>
Dans les xml de mise en page, certains TextViews référencés au-dessus du style MY.TextAppearance.Medium, tout semblait si bon. Mais je suis un accident alors que layouting TextView qui était dans un ListView, la stacktrace était
android.view.InflateException: Binary XML file line #9: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:666)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at com.xxx.yyy.MyListAdatper.getView(MyListAdatper.java:46)
On a d'autres TextViews plus bizarre dans même style ont été bien
Je ne sais pas pourquoi je suis tombé sur ce sujet. Avec un peu de débogage, j'ai juste trouvé que cela fonctionnait seulement si j'utilisais la couleur directe au lieu de la référence attr (s'il vous plaît consulter le commentaire ci-dessus styles.xml) dans la définition de My.TextAppearance.Medium.
Quelqu'un peut-il aider? Merci.
'? Attr/myTextColorHighlight' ne devrait-il pas être'? Attr/textColorHighlight'? –
@Kenny, j'ai déclaré myTextColorHighlight – fifth
Ah, désolé. Mes excuses. –