Я реализовал темный режим для своего приложения. В настройках можно установить. Затем он загружает вашу опцию из sharedprefs и применяет ее с помощью AppCompatDelegate.setDefaultNightMode
. Я сделал для этого функцию, которую я вызываю в начале каждого действия.
fun setAppTheme(context: Context) {
AppCompatDelegate.setDefaultNightMode(when(PreferenceManager.getDefaultSharedPreferences(context).getString("theme", "default")) {
"light" -> AppCompatDelegate.MODE_NIGHT_NO
"dark" -> AppCompatDelegate.MODE_NIGHT_YES
"default" -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
else -> AppCompatDelegate.MODE_NIGHT_YES
})
}
Он отлично работает, когда я устанавливаю его в соответствии с системой, все цвета правильные, но когда я устанавливаю его для принудительного ночного режима и меняю системный режим на светлый, все элементы просмотра ресайклера становятся светлыми (должны быть темными!)
Я прочитал это, это, пытался использовать все разные контексты, но ничего не помогло.