我目前正在开发远程样式功能。创建活动并通过 API 下载远程样式后,无法找到如何更改
colorPrimary
值的方法。我知道主题样式是不可变的,并且值无法更改,但我相信有一种方法可以告诉所有材质组件、状态栏和菜单栏在准备好使用后使用特定的颜色。有什么想法吗?
附上我的主题代码:
<style name="OrderingTheme" parent="@style/Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorPrimary</item>
</style>
谢谢!
您无法在运行时更改主题颜色,因为主题不可变。但您可以使用
Window.setStatusBarColor()
更改状态栏颜色。您还可以使用 Window.setNavigationBarColor()
更改导航栏颜色。
但如果您必须这样做,您可以为变量分配一种颜色,并且在切换模式/颜色/主题时,您可以切换分配给该变量的颜色。