我面临一个问题,我尝试了几种方法来面对它,仍然不成功。
我的应用程序正在使用多个主题,例如:万圣节、圣诞节等,并且我在小部件上使用了一些颜色属性,例如 TabLayout 背景、文本颜色等,以对应用程序进行上下文化。
问题是:如何根据主题上下文使用具有不同值的相同颜色属性?
所以,基本上这是声明颜色的正常方法:
<color name="mapMarkerSelectedTextColor">@android:color/white</color>
<color name="mapLoadingIndicatorColor">@color/white</color>
但是,主题和颜色是不可变的,所以我想,也许我可以在每个主题中覆盖这些颜色,例如:
<item name="mapMarkerUnselectedTextColor">@color/christmas_red</item>
<item name="mapMarkerSelectedTextColor">@color/white</item>
=> 不成功
其他线索,将这些颜色声明为属性:
<attr name="mapLoadingIndicatorColor" format="reference|color" />
<attr name="map_autocomplete_accent_color" format="reference|color" />
并像这样在我的 XML 中使用主题:“ ?attr/mapLoadingIndicatorColor
”。但此功能仅在Lollipop版本之后才允许使用,并导致之前的崩溃。
我已经阅读了很多关于主题定制、颜色覆盖的内容,但从未找到关于这种情况的明确解决方案。
不管怎么说,还是要谢谢你。