2016-05-18 90 views
6

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

colors.xml(库)

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

在我的应用程序(即使用上述库)。我想重写该颜色的主要。

colors.xml(APP)

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

其实我是想,这样的库(和我的应用程序)使用overrided一个,而不是宣布一个从库覆盖该属性。它工作正常,但Android Studio继续大喊:“覆盖@ color/colorPrimary在my_lib中标记为private。如果有意,请使用tools:override =”true“,否则选择其他名称。这让我觉得这不是一个好方法。

我也尝试添加工具:覆盖= “true” 以资源:

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

但警告仍然存在。

我在做什么有什么不对吗?我不能选择另一个名字,因为我想让图书馆使用重写的值。

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

感谢。

+1

如何为您的颜色元素添加“override”属性。 –

+0

你是对的,把每个颜色标签的覆盖属性按预期工作。无论如何,有没有办法让覆盖属性适用于所有颜色标签,而无需手动设置每个标签? – Paul

回答

7

tools:override移动到color标记。

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

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

+0

它现在按预期工作。谢谢。但是,alt-enter似乎不提供插入override属性。 – Paul

+0

尝试悬停在错误突出显示上,它应该告诉你快捷方式。 – alex