我可以用不同的软件包名称放置我的Android样式吗?
例如,我引用安卓风格与我可以用不同的软件包名称放置我的Android样式吗?,android,android-layout,android-styles,Android,Android Layout,Android Styles,例如,我引用安卓风格与 @android:style/... @style/... 和我自己的应用程序风格与 @android:style/... @style/... 但是我怎样才能把我的风格分成其他的名字呢?e、 g @somePackage:style/... 不幸的是你不能。您可能认为Android库可能会帮助您,但事实并非如此。这是因为在编译资源时,Android库“物理地”合并到主应用程序中 因此,从aapt的角度来看,您的应用程序资源与任何其他Android库资源都是
@android:style/...
@style/...
和我自己的应用程序风格与
@android:style/...
@style/...
但是我怎样才能把我的风格分成其他的名字呢?e、 g
@somePackage:style/...
不幸的是你不能。您可能认为Android库可能会帮助您,但事实并非如此。这是因为在编译资源时,Android库“物理地”合并到主应用程序中 因此,从
aapt
的角度来看,您的应用程序资源与任何其他Android库资源都是无法区分的。更重要的是,aapt
接收多个资源目录作为输入(即应用程序的res
路径,加上引用Android库中所有res
目录的路径),但同时,应用程序中只有一个AndroidManifest.xml
作为这些资源的“所有者”传递
我想说的是,即使您可以在逻辑上将资源(如样式)分组到单独的Android库中,您仍然不能使用这些Android库的包名引用它们。仅使用主应用程序的包名
例如,您的应用程序包名为
com.test.app
,Android库名为com.test.lib
。该库包含styletestStyle
以下方法不起作用(理论上没有任何方法可以帮助您解决此问题):
虽然这样做很好:
<TextView style="@com.test.app:style/testStyle" .../>