Как изменить цвета темы во время выполнения

#android #api #styles #customization #mobile-development

Вопрос:

В настоящее время я работаю над удаленной функцией укладки. Не удается найти способ изменить первоначальное значение цвета после создания действия и загрузки удаленного стиля через API. Я знаю, что стиль темы неизменен и это значение не может быть изменено, но я считаю, что есть способ указать всем компонентам материала, строке состояния и строке меню использовать определенные цвета после того, как он будет готов к использованию. Есть какие-нибудь идеи?

Прикрепляю свой код темы:

 <style name="OrderingTheme" parent="@style/Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorPrimary</item>
 </style>
 

Спасибо!

Ответ №1:

Вы не можете изменить цвет темы во время выполнения, поскольку темы не изменяются. Но вы можете изменить цвет строки состояния с Window.setStatusBarColor() помощью . а также вы можете изменить цвет панели навигации с помощью Window.setNavigationBarColor()

Комментарии:

1. Я знаю, что меня больше беспокоят материальные компоненты, вместо того, чтобы менять каждый из них, изменение colorPrimary немедленно изменило бы все представления