Android工具栏颜色变化

时间:2015-06-01 16:33:02

标签: android colors android-appcompat android-toolbar

我有一个使用android.support.v7.widget.Toolbar的应用。该应用的每个部分都是通过Fragment

访问的support.v4.widget.DrawerLayout

我需要根据显示的部分(客户特殊需要)更改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(工具栏中的原始主色)的每个视图现在都会显示使用工具栏的颜色。

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

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

尝试使用getSupportActionBar().setBackgroundDrawable()

我想这是造成这个问题的其他因素。你能发布更多代码吗?