【发布时间】:2015-06-20 21:39:32
【问题描述】:
我有一个使用 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(工具栏的原始原色)的每个视图现在都使用工具栏的新颜色显示。
所以,如果我的工具栏是 green 并且我将其更改为 red,那么现在使用旧绿色的 everything 都会改用红色。
我怀疑工具栏背景的更改会改变 primaryColor 定义本身(这对我来说毫无意义)。因为我不知道不相关活动中的不相关元素如何开始使用相同的颜色。
这是一个错误吗?有这个问题的人吗?有没有可用的解决方法?
感谢您的帮助。
【问题讨论】:
-
我猜(但不确定)您应该创建不同的主题并根据选择重新创建工具栏,但这可能不是最佳行为
-
我考虑过@tizionario,我同意你的看法。这似乎不是最好的方法。看起来工具栏的颜色必须易于更改。但显然不是,也许使用
Palette或任何其他方法?但我现在想不出合适的方法。
标签: android colors android-appcompat android-toolbar