虽然我可以使用
在RecyclerView.Adapter内为布局设置自定义颜色viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color_theme_1));
我无法设置以下代码
viewHolder.mLayout.setBackgroundColor(R.attr.colorLayoutBackground);
OR
viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.attr.colorLayoutBackground));
使用attr:color值。我在做什么错了?
我当前的代码如下--attrs.xml
</resources>
<!-- Color -->
<attr name="colorLayoutBackground" format="color"/>
</resources>
colors.xml
<!-- Theme One Color -->
<color name="color_theme_1">#F8BBD0</color>
<!-- Theme Two Color -->
<color name="color_theme_2">#C8E6C9</color>
styles.xml
<style name="AppTheme.Base.Light"
parent="Theme.AppCompat.Light.NoActionBar">
<!-- Theme One -->
<item name="colorLayoutBackground">@color/color_theme_1</item>
</style>
<style name="AppTheme.Base.Light"
parent="Theme.AppCompat.Light.NoActionBar">
<!-- Theme Two -->
<item name="colorLayoutBackground">@color/color_theme_2</item>
</style>
我想在主题更改时(使用recycleView)在一个列表项上动态设置两组颜色为Linear_Layout,但主题无法更改。
当未应用主题时,以下代码有效,并且列表上的每个项目都得到三种不同的颜色。
if(position % 3 == 0){
viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color_one));
}else if(position % 3 == 1){
viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color_two));
}else if(position % 3 == 2){
viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color_three));
}
我想通过主题添加另一组颜色,并在更改主题时进行更改。 任何/所有帮助和建议都将不胜感激。