2016-05-18 91 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