Установка нескольких элементов стиля в одно и то же значение в 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 альтернативно объявлять новое значение.

Другие вопросы по тегам