私のアプリはライブラリプロジェクトを使用しています」コアプロジェクト「アプリケーションのコアで、それから小さなプロジェクトで」子プロジェクト「サポートされている各デバイスの特性(Amazon Fire TV、Kindleタブレット、通常のGoogleタブレット、電話など)
言わせてください、私はカスタムビュークラスがあります MyCustomView
プログラム的にレイアウトを膨らませる R.layout.layout_customview
. どちらもコアプロジェクトです。
public class MyCustomView {
.
.
inflate (R.layout.layout_customview);
.
.
}
このカスタムビューの代替レイアウトをいずれかの子プロジェクトで作成したいので、 layout_customview.xml
そしてそれを置く 子プロジェクトのres / layoutに。
ただし、カスタムビューは、コアプロジェクトのres / layoutの下でもう一方のビューを膨らませ続けます(どちらも同じプロジェクト内にあるため、論理的に思えます)。
この動作を変更する方法はありますか?すなわち。 xmlレイアウトファイルを "上書き"するか、それとも別のレイアウトに別の名前を付けるか、クラスを拡張するかなどが必要ですか。
回答:
回答№1の場合は3両方にリソースIDが定義されている場合アプリケーションと ライブラリ、ツールは、リソースが アプリケーションが優先され、ライブラリプロジェクト内のリソースが優先されます。 アプリケーション.apkにコンパイルされていません。これはあなたのアプリケーションを与えます リソースの振る舞いを使用または再定義する柔軟性 任意のライブラリで定義されている値。
私はここでより良いコースはあなたのプロジェクトで単にxmlを複製することであると思います。