【问题标题】:Can't override android colors无法覆盖android颜色
【发布时间】:2015-09-09 18:37:58
【问题描述】:

我正在使用库来获取日期和时间 (https://github.com/wdullaer/MaterialDateTimePicker)。

还有一句话:

“或者,您可以通过覆盖项目中的颜色资源 mdtp_accent_color 和 mdtp_accent_color_dark 来设置选择器的主题。”

所以我用自己的颜色覆盖了这两种颜色,但是当我运行应用程序时,它仍然是库颜色,而不是我的颜色。

也许有人有同样的问题,或者你知道为什么会这样?

编辑: 这是我覆盖颜色的方法:

<color name="mdtp_accent_color">#08395b</color>
<color name="mdtp_accent_color_dark">#062d48</color>

【问题讨论】:

  • 你如何“覆盖”库的颜色?
  • 请看一下,我更新我的问题

标签: android color-scheme overriding


【解决方案1】:

这是库查找颜色的顺序:

  1. java 中的颜色设置
  2. 如果在 5.0+ 上:颜色设置在 android.R.attr.colorAccent
  3. 颜色设置在R.attr.colorAccent
  4. 颜色设置在R.color.mdtp_accent_color

如果在您的应用程序中定义了R.attr.colorAccent(例如,因为您使用的是最新版本的AppCompat 支持库),则不能使用R.color.mdtp_accent_color 覆盖它。 如果你想使用不同的颜色,我建议你在实例化对话框时在你的java代码中设置:

tpd.setAccentColor(myColor);

【讨论】:

  • 嗯,我使用的是 4.0 v,并且他没有在我的颜色中设置 R.color.colorAccent... tpd.setAccentColor(myColor);工作正常,但自动定义的深色有时看起来很难看:) 如果你要添加 tpd.setAccentColorDark(myColor); - 我认为这将是完美的!
  • 我更新了答案以反映它正在查看主题属性,而不是颜色名称。
猜你喜欢
  • 2022-01-23
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 2020-11-28
相关资源
最近更新 更多