如何使用来自多个模块的多个 dimens.xml 文件?

How are multiple dimens.xml files from multiple modules used?

我有点困惑如何在 AndroidStudio 中处理多个 dimens.xml 文件(不是针对不同的屏幕分辨率和大小,而是来自多个库模块)。

我有一个 AndroidStudio 项目,它由一个主模块(可运行的应用程序)和几个库模块组成,我们称它们为 module1module2

从我主模块的布局文件夹中的 xml 文件,我尝试访问存储在 module2dimens.xml 中的值,例如这个 android:paddingBottom="@dimen/...",但是我只能从 module1 和主模块本身找到维度。

我的问题是,如何从主模块和所有库模块访问维度值?为什么,我得到了关于主要模块和 module1's 值的建议,但没有关于 module2?

的建议

如有任何澄清,我将不胜感激。

Android Gradle 插件和 Android Studio 最近进行了更改以支持库项目中的 public 和私有资源的概念。

这允许库隐藏它们的资源以防止使用应用程序,防止污染资源命名空间并防止消费者使用可能在库的未来版本中更改的资源。

默认情况下,库项目中的所有资源都是私有的。

要创建资源 public,请创建一个新的 res/values/public.xml 资源文件并在该文件中放置如下定义:

<resources>
    <public name="libraryname_dimen" type="dimen"/>
</resources>

如果您要发布 AAR,这将创建一个名为 libraryname_dimen public 的维度资源,因此可供其他模块使用 and/or 使用应用程序。

您可以在 Private Resources tools documentation 阅读更多内容。

尝试使用 android:paddingBottom="?attr/..." 访问此类值。
这也适用于颜色。