Je veux avoir 2 thèmes sélectionnables pour mon application. Pour ce faire, j'ai défini certains attributs, comme ceci :
Ensuite, j'ai créé les deux thèmes, comme ceci :
<item name="item_background">#123456</item>
<item name="item_background">#ABCDEF</item>
Cette méthode fonctionne très bien, me permettant de créer et de modifier plusieurs thèmes facilement. Le problème est que il semble que cela ne puisse être utilisé que dans les vues, et non dans les dessins.
Par exemple, référencer une valeur à partir d'une vue à l'intérieur d'une mise en page fonctionne :
Mais faire la même chose dans un dessin ne fonctionne pas :
Je reçois cette erreur lors de l'exécution de l'application :
java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
Si au lieu de ?item_background
j'utilise une couleur codée en dur, cela fonctionne, mais cela ne me permet pas d'utiliser mes thèmes. J'ai également essayé ?attr:item_background
, mais le même problème se produit.
Comment pourrais-je faire cela ? Et pourquoi cela fonctionne dans les vues mais pas dans les dessins ? Je ne trouve pas cette limitation dans la documentation...