Можно ли настроить строку состояния в файле стилей для поддержки другого цвета в темном режиме

Я добавляю поддержку темного режима в свое приложение и хочу настроить цвет строки состояния только в темном режиме.

Я уже изучил это решение, но я не Я не хочу менять свой цветPrimaryDark, так как он используется в других местах.

Итак, я знаю, что есть этот атрибут темы:

<item name="StatusBarColor">@color/status_bar_color</item>

но я не знаю, как я могу ссылаться на ?attr/colorPrimaryDark в моем файле цветов и использовать, скажем, #121212 в моем файле цветов-ночи

Вот что я пробовал:

themes.xml

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="colorPrimary">@color/blue</item>
    <item name="colorPrimaryDark">@color/blue_dark</item>
    <item name="colorAccent">@color/blue</item>
    <item name="colorControlHighlight">@color/blue_highlight</item>
    <item name="android:statusBarColor">@color/status_bar_color</item>
</style>

значения/colors.xml

    <color name="status_bar_color">?attr/colorPrimaryDark</color> <-- This line is causing 'UnsupportedOperationException -->

значения-ночь/colors.xml

    <color name="status_bar_color">#121212</color>

Возникает вопрос: Как я могу использовать пользовательский цвет для строки состояния в темном режиме и продолжать использовать ?attr/colorPrimaryDark в светлом режиме?


person Tsuuki    schedule 17.11.2020    source источник