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 更多代码吗?
我有一个使用 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 更多代码吗?