2016-05-18 5 views
6

Ich benutze meine eigene Bibliothek. In dieser Bibliothek definierte ich einige Ressourcen:Ressourcen in Bibliothek Android überschreiben

Colors.xml (Bibliothek)

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

In meiner app (das verwendet die oben Bibliothek). Ich möchte diese primäre Farbe überschreiben.

Colors.xml (app)

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

Ich mag eigentlich das Attribut außer Kraft zu setzen, so dass die Bibliothek (und meine app) das overrided man verwenden, nicht das von der Bibliothek eines erklärt. Es funktioniert gut, aber Android Studio schreit laut: "Overriding @ color/colorPrimary, die in my_lib als privat gekennzeichnet ist. Wenn absichtlich, verwenden Sie Werkzeuge: override =" true ", andernfalls wählen Sie einen anderen Namen". Das lässt mich denken, dass dies kein guter Ansatz ist.

Ich versuche auch Tools hinzuzufügen: außer Kraft setzen = "true" auf die Ressource:

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

aber die Warnung immer noch da.

Gibt es etwas falsch mit dem, was ich tue ?. Ich kann keinen anderen Namen wählen, weil ich möchte, dass die Bibliothek die überlagerten Werte verwendet.

Ich benutze Android Studio 2.1.1 und grandle 2.1.0 Version.

Danke.

+1

Wie wäre es hinzufügen Attribut 'override' zu Ihrem Farbelement. –

+0

Sie haben Recht, das Override-Attribut für jedes Farb-Tag funktioniert wie erwartet. Wie auch immer, gibt es eine Möglichkeit, das Override-Attribut für alle Farb-Tags anzuwenden, ohne manuell für jedes Tag festzulegen? – Paul

Antwort

7

Verschieben Sie die tools:override auf die color Marke.

Es ist nichts falsch daran. Android Studio warnt Sie nur, falls es nicht beabsichtigt war.

Wenn Sie Alt-Enter in der Zeile mit der Warnung drücken, bietet AS an, das Override-Attribut für Sie einzufügen und wird es an die richtige Stelle setzen.

+0

Es funktioniert jetzt wie erwartet. Vielen Dank. Alt-enter scheint jedoch nicht anzubieten, das override-Attribut einzufügen. – Paul

+0

Versuchen Sie, den Mauszeiger über die Fehlermarkierung zu bewegen, es sollte Ihnen die Verknüpfung mitteilen. – alex