Я хочу иметь 2 выбираемые темы для моего приложения.Для этого я определил некоторые атрибуты, например:
<attr format="color" name="item_background" />
Затем я создал обе темы, например:
<style name="ThemeA">
<item name="item_background">#123456</item>
</style>
<style name="ThemeB">
<item name="item_background">#ABCDEF</item>
</style>
Этот метод отлично работает, что позволяет мнесоздавать и изменять несколько тем легко.Проблема в том, что кажется, что его можно использовать только в представлениях, а не в Drawables .
Например, ссылка на значение из представления в макете работает:1012 *
Но делать то же самое в Drawable не получается:
<shape android:shape="rectangle">
<solid android:color="?item_background" />
</shape>
При запуске приложения возникает ошибка:
java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
Если вместо ?item_background
Iиспользуйте жестко заданный цвет, это работает, но это не позволяет мне использовать мои темы.Я также пытался ?attr:item_background
, но то же самое происходит.
Как я мог это сделать?И почему это работает в представлениях, а не в Drawables?Я не могу найти это ограничение нигде в документации ...