Хотя я смог установить собственный цвет для макета, внутри RecyclerView.Adapter с помощью
viewHolder.mLayout.setBackgroundColor(ContextCompat.getColor(context,R.color.color_theme_1));
я не могу установить следующий код
viewHolder.mLayout.setBackgroundColor(R.attr.colorLayoutBackground);
ИЛИ
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>
Я хочу динамически установить два набора цветов в Linear_Layout для элемента списка (используя recycleView), при смене темы / тем, но каким-то образом не могу пройти.
Следующий код работает, когда тема не применяется, и я получаю три разных цвета для каждого элемента в списке.
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));
}
Я хочу добавить другой набор цветов через темы и изменить его по мере изменения темы.Любая / Все помощь и предложения приветствуются.