Значения цвета в ночном режиме не применяются к элементам просмотра переработчика

Я реализовал темный режим для своего приложения. В настройках можно установить. Затем он загружает вашу опцию из 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
    })
}

Он отлично работает, когда я устанавливаю его в соответствии с системой, все цвета правильные, но когда я устанавливаю его для принудительного ночного режима и меняю системный режим на светлый, все элементы просмотра ресайклера становятся светлыми (должны быть темными!)

Я прочитал это, это, пытался использовать все разные контексты, но ничего не помогло.


person kuky.isnt.bot    schedule 04.01.2021    source источник


Ответы (1)


Я понял. Проблема заключалась в том, что я вызывал функцию setAppTheme прямо перед super.onCreate() в основном действии. Виноват. Это работает сейчас:

...
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setAppTheme(this)
...
person kuky.isnt.bot    schedule 04.01.2021