6

たとえば、私はアンドロイドスタイルを参照しています...

@android:style/... 

そして、自分のアプリのスタイルを...

@style/...

しかし、どうすれば自分のスタイルを他の名前のパッケージに分けることができますか? 例えば

@somePackage:style/...
4

1 に答える 1

3

残念ながらできません。Android ライブラリが役立つかもしれないと思うかもしれませんが、そうではありません。これは、リソースのコンパイル時に Android ライブラリが「物理的に」メイン アプリケーションにマージされるためです。

したがってaapt、アプリケーションのリソースは他の Android ライブラリ リソースと見分けがつきません。さらに、aapt入力として複数のリソース ディレクトリを受け取ります (つまり、アプリケーションへのパスと、参照 Android ライブラリからresのすべてのディレクトリへのパス) が、これらのリソースの「所有者」としてアプリケーションから 1 つだけが渡されます。resAndroidManifest.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" .../>
于 2011-08-09T10:46:37.257 に答える