【问题标题】:Can I place my Android styles in different package names?我可以将我的 Android 样式放在不同的包名中吗?
【发布时间】:2011-08-09 10:19:43
【问题描述】:

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

@android:style/... 

还有我自己的应用样式...

@style/...

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

@somePackage:style/...

【问题讨论】:

    标签: android android-layout android-styles


    【解决方案1】:

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

    因此,从aapt 的角度来看,您的应用程序的资源与任何其他 Android 库资源都无法区分。更重要的是,aapt 接收多个资源目录作为输入(即应用程序的res 的路径,加上来自引用Android 库的所有res 目录的路径),但同时仅传递来自应用程序的单个AndroidManifest.xml作为这些资源的“所有者”。

    我想说的是,即使您可以在逻辑上将资源(例如样式)分组到单独的 Android 库中,您仍然无法使用这些 Android 库的包名称来引用它们。仅使用主应用程序的包名。


    例如,您的应用程序包名称为com.test.app,Android 库名称为com.test.lib。该库包含样式testStyle

    以下方法不起作用(理论上没有什么可以帮助您解决此问题):

    <TextView style="@com.test.lib:style/testStyle" .../>
    

    虽然这很好用:

    <TextView style="@com.test.app:style/testStyle" .../>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多