как динамически изменять тему для отдельного просмотра в держателе просмотра - PullRequest
0 голосов
/ 05 мая 2020

Приложение использует AppCompatDelegate для управления отображением в светлом или темном режиме.

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
or
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

Все представления показывают правильный фон, а текстовые представления показывают правильный цвет текста, определенный либо в обычном цветовом ресурсе, либо в ресурсе color-night, в зависимости от текущего режима автоматически. например:

<TextView 
    android:textColor="@color/the_text_color" 
/>
and in res/values/color.xml
    <color name="the_text_color">#828c93</color>
and in res/values-night/color.xml
    <color name="the_text_color">#bbbbbb</color>

Но есть некоторый случай, например, в recyclerView в определенной позиции, он должен показать этот элемент списка в режиме независимо от текущего режима приложения night_mode_yes или night_mode_no.

то есть приложение в настоящее время находится в night_mode_no, в позиции списка 3 ему нужно, чтобы этот элемент отображался в nigh_mode_yes.

есть ли способ сделать что-то вроде:

if (position==3)
    viewHolder.itemView.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
else 
    viewHolder.itemView.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) 

, чтобы управлять режимом просмотра на индивидуальном уровне просмотра, не затрагивая остальную часть приложения?

...