Установка нескольких элементов стиля в одно и то же значение в xml
Я работаю над проектом с несколькими темами, и каждая тема имеет разные значения для атрибутов.
Я хочу, чтобы некоторые из моих атрибутов имели одно и то же значение, и я знаю, что могу достичь этого примерно так.
<style name="theme_plain" parent="AppBaseThemeLight">
<item name="theme_backgroundtint">#FFF1F1F1</item>
<item name="theme_previewboxcolor">?theme_backgroundtint</item>
</style>
В моем коде я затем получить доступ к этому значению с
int boxcol = getIntFromAttr(R.attr.theme_previewboxcolor, themecolor);
Когда текущая тема, установленная для приложения, является рассматриваемой темой, этот метод работает нормально, и значение theme_previewboxcolor = theme_backgroundtint из той же темы.
Однако, если текущая тема набора - другая тема, theme_previewboxcolor принимает значение theme_backgroundtint для темы, которая в настоящее время установлена. Я понимаю, почему это так, поскольку текущее значение theme_backgroundtint установлено на текущую тему.
Мне нужен способ, чтобы theme_previewboxcolor соответствовал значению theme_backgroundtint, которое было установлено в той же теме, так что даже когда текущий набор тем отличается, значение theme_previewboxcolor и значение theme_backgroundtint, установленные в теме, совпадают.
Спасибо
1 ответ
Я нашел обходной путь, в котором я использую перечисления, чтобы указать, какое значение атрибута следует читать в моем коде как theme_previewboxcolor. Однако это не позволяет theme_previewboxcolor альтернативно объявлять новое значение.