【问题标题】:Android Toolbar color changeAndroid 工具栏颜色变化
【发布时间】: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


【解决方案1】:

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

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

我猜这是导致问题的其他原因。你能发布更多代码吗?

【讨论】:

  • 感谢@Aky 的答案,但我尝试更改的不是theme,而是Toolbar 颜色,它由primaryColor 上的值定义(在@ 987654325@) 我的意思是,如果原色是红色,我希望它保持红色,所以其他所有元素都保持红色。但是工具栏,我可能希望它是绿色、蓝色或任何我需要的。但是一旦我改变了工具栏的颜色,使用primaryColor 颜色的所有其他元素也会改变。
  • @EloiNavarro Ohhkay,但是你试过getSupportActionBar().setBackgroundDrawable() 吗?
  • 我必须承认,我不确定这是否会显示出任何差异。但确实,它解决了我的问题。非常感谢!
  • @EloiNavarro 我很高兴它有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多