【问题标题】:Override resources in library android覆盖库android中的资源
【发布时间】:2016-05-18 03:24:10
【问题描述】:

我正在使用我自己的库。在这个库中,我定义了一些资源:

colors.xml(库)

<color name="colorPrimary">#000000</color>

在我的应用程序中(使用上述库)。我想覆盖那个原色。

colors.xml(应用)

<color name="colorPrimary">#ffffff</color>

我实际上想覆盖该属性,以便库(和我的应用程序)使用覆盖的属性,而不是库中声明的属性。它运行良好,但 Android Studio 一直在大喊:

覆盖在 my_lib 中标记为私有的 @color/colorPrimary。如果故意,请使用 tools:override="true",否则选择不同的名称”。这让我觉得这不是一个好方法。

我也尝试将tools:override="true" 添加到资源中:

<resources xmlns:tools="http://schemas.android.com/tools"
       tools:override="true">

但警告仍然存在。

我在做什么有什么问题吗?我不能选择其他名称,因为我希望库使用覆盖的值。

我正在使用Android Studio 2.1.1gradle 2.1.0 版本。

谢谢。

【问题讨论】:

  • 如何将override 属性添加到您的颜色元素。
  • 你是对的,为每个颜色标签设置覆盖属性按预期工作。无论如何,有没有办法让覆盖属性应用于所有颜色标签而无需手动设置每个标签?

标签: android resources


【解决方案1】:

tools:override 移动到color 标记。

这并没有错。 Android Studio 只是警告你,以防它不是故意的。

如果您在出现警告的行上按 alt-enter,AS 将主动为您插入覆盖属性并将其放置在正确的位置。

【讨论】:

  • 它现在按预期工作。谢谢。但是,alt-enter 似乎不提供插入覆盖属性。
  • 尝试将鼠标悬停在错误突出显示上,它应该会告诉您快捷方式。
猜你喜欢
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
相关资源
最近更新 更多