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