我有一个使用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
定义本身(这对我来说毫无意义)。因为我不知道不相关活动中不相关的元素如何开始使用相同的颜色。
这是一个错误吗?谁有这个问题?有没有可用的解决方法?
感谢您的帮助。
答案 0 :(得分:1)
首先主题是不可变,因此无法更改应用的主要颜色。
尝试使用getSupportActionBar().setBackgroundDrawable()
。
我想这是造成这个问题的其他因素。你能发布更多代码吗?