6

例如,我使用...引用 android 样式

@android:style/... 

和我自己的应用程序样式...

@style/...

但是如何将我的样式分成其他名称包?例如

@somePackage:style/...
4

1 回答 1

3

不幸的是你不能。您可能认为 Android 库可能会对您有所帮助,但事实并非如此。这是因为 Android 库在编译资源时“物理地”合并到主应用程序中。

因此,从aapt角度来看,您的应用程序的资源与任何其他 Android 库资源都没有区别。更重要的是,aapt接收多个资源目录作为输入(即res应用程序的路径,加上res来自引用 Android 库的所有目录的路径),但同时只有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" .../>
于 2011-08-09T10:46:37.257 回答