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

Android 如何使用来自多个模块的多个dimens.xml文件?,android,android-resources,Android,Android Resources,我有点困惑AndroidStudio如何处理多个dimens.xml文件(不是用于不同的屏幕分辨率和大小,而是来自多个库模块) 我有一个AndroidStudio项目,它由一个主模块(runnable应用程序)和几个库模块组成,让我们称它们为module1和module2 从主模块布局文件夹中的xml文件中,我尝试访问存储在module2的dimens.xml中的值,例如这个android:paddingBottom=“@dimen/…”,但我只能从module1和主模块本身中找到dimen 我

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

我有一个AndroidStudio项目,它由一个主模块(runnable应用程序)和几个库模块组成,让我们称它们为
module1
module2

从主模块布局文件夹中的xml文件中,我尝试访问存储在
module2
dimens.xml
中的值,例如这个
android:paddingBottom=“@dimen/…”
,但我只能从
module1
和主模块本身中找到dimen

我的问题是,如何从主模块和所有库模块访问dimen值?为什么我会得到关于主要模块和
module1
值的建议,而不是关于
module2


如果您能对此做出任何澄清,我将不胜感激。

Android Gradle插件和Android Studio最近做出了一项改变,以支持图书馆项目中公共和私人资源的概念

这使得库可以隐藏其资源,以避免使用应用程序,防止污染资源命名空间,并防止使用者使用可能在库的未来版本中更改的资源

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

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

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

这将使名为
libraryname\u dimen
的维度资源公开,因此,如果您要发布AAR,则其他模块和/或消费应用程序可以使用该维度资源


您可以在上阅读更多信息。

尝试使用
android:paddingBottom=“?attr/…”
访问这些值。

这也适用于颜色。

我还建议再编辑一点。在新文档上,引用:>库中的所有资源默认为public。要使所有资源隐式私有,必须至少将一个特定属性定义为public。