Как установить setBackgroundColor attr: color / on android программно - PullRequest
0 голосов
/ 25 февраля 2019

Хотя я смог установить собственный цвет для макета, внутри 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));
            }

Я хочу добавить другой набор цветов через темы и изменить его по мере изменения темы.Любая / Все помощь и предложения приветствуются.

...