Android 工具栏颜色更改

Android Toolbar color change

我有一个使用 android.support.v7.widget.Toolbar 的应用程序。应用程序的每个部分都是通过 support.v4.widget.DrawerLayout

访问的 Fragment

我需要根据显示的部分(客户特定需求)更改 Toolbar 颜色。

我在 colors.xml 中定义了一些颜色,所以我可以制作类似的东西:

changeToolbarColor(R.color.section_one);

/**/

private void changeToolbarColor(int color_res_id){
    Integer colorTo = getResources().getColor(color_res_id);
    toolbar.setBackgroundColor(colorTo);
}

问题是,一旦我这样做,每个使用 primaryColor(工具栏中的原始原色)的视图现在都使用 new 颜色显示工具栏。

因此,如果我的工具栏是 绿色,我将其更改为 红色,现在 所有内容使用旧的绿色代替红色。

我怀疑工具栏背景的变化会改变 primaryColor 定义本身(这对我来说毫无意义)。因为我不知道无关活动中的无关元素如何开始使用相同的颜色。

这是一个错误吗?有人有这个问题吗?有可用的解决方法吗?

感谢您的帮助。

首先,主题是不可变的,因此无法更改应用的主要颜色。

并尝试使用 getSupportActionBar().setBackgroundDrawable()

我猜是其他原因导致了这个问题。你能 post 更多代码吗?