覆盖库android中的资源

时间:2016-05-18 03:24:11

标签: android resources

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

colors.xml(图书馆)

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

在我的应用中(使用上述库)。我想覆盖那种主色。

colors.xml(app)

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

我实际上想要覆盖该属性,以便库(和我的应用程序)使用覆盖的属性,而不是库中声明的属性。它工作正常,但Android Studio一直大喊:

  

重写@ color / colorPrimary,在my_lib中标记为私有。如果有意,请使用工具:override =&#34; true&#34;,否则选择不同的名称&#34;。这让我觉得这不是一个好方法。

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

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

但警告仍在那里。

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

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

感谢。

1 个答案:

答案 0 :(得分:16)

tools:override移至color标记。

这没有什么不妥。 Android Studio只是警告你,因为它不是故意的。

如果您在带有警告的行上按alt-enter,AS将提供为您插入覆盖属性并将其放在正确的位置。