如何在运行时更改主题颜色

问题描述 投票:0回答:1

我目前正在开发远程样式功能。创建活动并通过 API 下载远程样式后,无法找到如何更改

colorPrimary
值的方法。我知道主题样式是不可变的,并且值无法更改,但我相信有一种方法可以告诉所有材质组件、状态栏和菜单栏在准备好使用后使用特定的颜色。有什么想法吗?

附上我的主题代码:

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

谢谢!

android css customization mobile-development
1个回答
0
投票

您无法在运行时更改主题颜色,因为主题不可变。但您可以使用

Window.setStatusBarColor()
更改状态栏颜色。您还可以使用
Window.setNavigationBarColor()
更改导航栏颜色。 但如果您必须这样做,您可以为变量分配一种颜色,并且在切换模式/颜色/主题时,您可以切换分配给该变量的颜色。

© www.soinside.com 2019 - 2024. All rights reserved.