android - 如何在“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>
解决方案
解决方案:
应用程序/颜色.xml
<resource>
<color name="pop_up">#4fe40f</color>
</resource>
SDK/颜色.xml
<resource>
<color name="pop_up">"#000000"</color>
</resource>
项目的资源文件总是会覆盖 sdk 的资源文件。在 sdk 中定义一个参数名称,如果主项目中存在相同的参数名称,它将使用项目中的值。
因此,您的解决方案是在 sdk 中声明一个名为 pop_up 的颜色,并在项目中声明一个相同的颜色。
推荐阅读
- node.js - 在 express.Router() 中存储路由;
- php - 当我发送太多请求时,它会失败,整个网站将停止工作
- node.js - 如何从 Kafka 中的特定偏移量获取数据?
- java - 在我尝试访问应用程序时在tomcat 8中成功部署角度js项目构建后,它没有显示空白页面
- javascript - HTML Canvas 的文本未显示在屏幕上
- angular - @azure/msal-angular 注销重定向到应用程序,但应用程序不显示
- ios - 有没有办法在 Swift 中反转动画?
- c - 如何通过串行打印浮点数?
- sql-server - T-SQL:创建存储过程以更新表中的列,其中表和字段作为参数
- angular - 如何检测用户已到达虚拟滚动角度 7 中的列表末尾?