Несколько тем меняют цвет значка вкладки - PullRequest
0 голосов
/ 08 октября 2018

Я изучил MDC из Google Code Lab , и это хорошо разработанное приложение, которое знает, как работает дизайн материала.Однако в отдельном разделе они показали, как использовать темную тему.Сделал это, изменив атрибуты темы с style.xml.Будучи изобретательным, я пытался научиться использовать несколько тем и обмениваться ими во время выполнения.

По этой причине я избегал их жестко запрограммированного способа и пытался унаследовать базовую тему и вносить изменения в соответствии с моими потребностями.Ниже я помещаю некоторые изменения в файл темы

<!--Dark Theme style !-->
<style name="Theme.Shrine.Dark" parent="Theme.Shrine">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/darkColorPrimaryDark</item>
    <item name="colorPrimaryDark">@color/darkColorPrimaryDark</item>
    <item name="colorAccent">@color/darkColorAccent</item>
    <item name="android:windowLightStatusBar" tools:targetApi="m">false</item>
    <item name="android:textColorPrimary">@color/darkTextColorPrimary</item>
    <item name="colorControlActivated">@color/darkColorControlActivated</item>
    <item name="toolBarStyle">@style/Widget.Shrine.Toolbar.Dark</item>
    <item name="appBackGroundColor">@color/darkBackgroundColor</item>
</style>

Есть некоторые изменения, но они не имеют отношения к моей проблеме, поэтому я не собираюсь добавлять их здесь.В любом случае, с изменениями в моем стиле файл приложения выглядит примерно так: enter image description here

Ожидается все, кроме цвета значка на панели инструментов.Поэтому я проверяю код и обнаруживаю, что на каждый цвет значков ссылаются из соответствующих им из рисуемого файла с android:tint="@color/toolbarIconColor", а в color.xml toolbarcolor равен <color name="toolbarIconColor">@color/textColorPrimary</color>

В темном режиме он показывает неправильный цвет, в этомСлучай, как я могу показать желтый цвет в темном режиме.Я изменил textColoeSecondary из базовой темы темной темы, но он не работал

1 Ответ

0 голосов
/ 08 октября 2018

Во-первых, вам нужно удалить жесткую ссылку на цвет из всех элементов рисования, которые отражают разные цвета в зависимости от темы приложения.Итак, добавьте attrs.xml в ваш каталог значений.и добавьте эталонное имя для цвета значка, такого как этот

<attr name="toolbarIconColor" format="reference"/>

Во-вторых, добавьте два разных цвета для двух тем.Например, для нормальной темы <color name="toolbarIconColor">@color/textColorPrimary</color> и для темной используйте <color name="darkToolbarIconColor">#FFCF44</color>

Наконец, перейдите в файл style.xml и внесите это изменение, чтобы подключиться к ссылке, добавленной в файл attrs.xml, как этот для нормальной темы <item name="toolbarIconColor">@color/toolbarIconColor</item> и <item name="toolbarIconColor">@color/darkToolbarIconColor</item>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...