2016-05-18 8 views
6

私は自分のライブラリを使用しています。 (つまり、上記のライブラリを使用しています)私のアプリではライブラリ内のリソースをオーバーライドします。

colors.xml(ライブラリ)

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

:このライブラリでは、私はいくつかのリソースを定義しました。私はその色のプライマリをオーバーライドしたい。

colors.xml(アプリ)

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

は、私が実際に図書館(と私のアプリ)をオーバーライド1、ないライブラリから宣言したものを使用するようにその属性を上書きしたいです。それはうまくいきますが、Android Studioは次のように叫んでいます。 "my_libでプライベートとマークされた@ color/colorPrimaryをオーバーライドします。熟慮した場合、ツール: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:overridecolorタグに移動します。

これは問題ありません。 Android Studioはちょうどあなたに警告しています、それは慎重ではなかったからです。

警告が表示されている行でalt-enterを押すと、ASはあなたの優先属性を挿入し、正しい場所に配置します。

+0

これは期待どおりに動作します。ありがとう。しかし、alt-enterはoverride属性を挿入するようには思われません。 – Paul

+0

エラーハイライトの上にカーソルを置くと、ショートカットが表示されます。 – alex

関連する問題