首页 > 解决方案 > 如何在“sdk/color.xml”中使用“app/color.xml”中提到的颜色?

问题描述

我需要将颜色从应用程序更改为库(SDK)。我需要使用 SDK 中 app 中的 color.xml 文件中的颜色。SDK 有自己的 color.xml。所以在 app 中对 color.xml 文件所做的更改也应该适用于 SDK。

应用程序/颜色.xml

<resource>
 <color name="pop_up">#4fe40f</color>
</resource>

SDK/颜色.xml

<resource>
<color name="popup_color">?attr/pop_up</color>
</resource>

SDK/attrs.xml

<resources>
    <attr name="pop_up" format="reference|color"/>
</resources>

我尝试使用 ?attrs/color_name 和父/子样式,但无法覆盖 SDK 中的颜色。

预期结果 ::

应用程序/颜色.xml

<resource>
 <color name="pop_up">#4fe40f</color>
</resource>

SDK/颜色.xml

<resource>
<color name="popup_color">@color/pop_up</color> // color "pop_up" should come from app and apply here.
</resource>

标签: android

解决方案


解决方案:

应用程序/颜色.xml

<resource> <color name="pop_up">#4fe40f</color> </resource>

SDK/颜色.xml

<resource> <color name="pop_up">"#000000"</color> </resource>

项目的资源文件总是会覆盖 sdk 的资源文件。在 sdk 中定义一个参数名称,如果主项目中存在相同的参数名称,它将使用项目中的值。

因此,您的解决方案是在 sdk 中声明一个名为 pop_up 的颜色,并在项目中声明一个相同的颜色。


推荐阅读