たとえば、私はアンドロイドスタイルを参照しています...
@android:style/...
そして、自分のアプリのスタイルを...
@style/...
しかし、どうすれば自分のスタイルを他の名前のパッケージに分けることができますか? 例えば
@somePackage:style/...
たとえば、私はアンドロイドスタイルを参照しています...
@android:style/...
そして、自分のアプリのスタイルを...
@style/...
しかし、どうすれば自分のスタイルを他の名前のパッケージに分けることができますか? 例えば
@somePackage:style/...
残念ながらできません。Android ライブラリが役立つかもしれないと思うかもしれませんが、そうではありません。これは、リソースのコンパイル時に Android ライブラリが「物理的に」メイン アプリケーションにマージされるためです。
したがってaapt
、アプリケーションのリソースは他の Android ライブラリ リソースと見分けがつきません。さらに、aapt
入力として複数のリソース ディレクトリを受け取ります (つまり、アプリケーションへのパスと、参照 Android ライブラリからres
のすべてのディレクトリへのパス) が、これらのリソースの「所有者」としてアプリケーションから 1 つだけが渡されます。res
AndroidManifest.xml
私が言いたいのは、リソース (スタイルなど) を個別の Android ライブラリに論理的にグループ化できても、これらの Android ライブラリのパッケージ名を使用してリソースを参照することはできないということです。メイン アプリケーションのパッケージ名のみを使用します。
たとえば、パッケージ名com.test.app
のアプリケーションとcom.test.lib
. ライブラリには style が含まれていますtestStyle
。
以下は機能しません (理論的には、これを回避するのに役立つものは何もありません):
<TextView style="@com.test.lib:style/testStyle" .../>
これはうまくいきますが:
<TextView style="@com.test.app:style/testStyle" .../>