Как включить MODE_NIGHT_YES в каждом действии с помощью setLocalNightMode ()? - PullRequest
0 голосов
/ 28 мая 2019

Недавно я хотел создать настройку, чтобы включить ночной режим в своем приложении для Android, я искал в Интернете и нашел хорошее решение с темой AppCompatDelegate DayNight и фрагментом короткого кода ...:

if(settingsSharedPreferences.getBoolean(getString(R.string.design_dark_design_key),false)) 
    {
        getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    }

... чтобы включить темный режим для моей MainActivity, если он включен в настройках моего приложения.Он отлично работал и изменил мою MainActivity в "DarkMode"!Но если я открываю другое действие, оно не появляется в темном режиме, как основное действие, но если я добавляю строки кода выше к этому новому действию, оно также начинается с темного режима.Итак, мой вопрос:

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

ОБНОВЛЕНИЕ :

Я только что вызвал код baove в новом действии перед изменением методов super.onCreate () и setContentView () и всей моей темы приложения.Но если я назову это в MainActivity, просто изменится тема моей MainActivity ... Это действительно странно.Могу ли я изменить всю тему также в MainActivity?

Спасибо заранее!

1 Ответ

0 голосов
/ 29 мая 2019

Хорошо, я нашел решение! Для всех, у кого такая же проблема, это правильный способ применения темного дизайна для всего вашего приложения: Я получил это с этого сайта NICE

https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/

И это довольно просто, вам просто нужно использовать

AppCompatDelegate.setDefaultNightMode(mode);

вместо

getDelegate().setLocalNightMode(mode);

Довольно просто, но действительно полезно !!! Удачного кодирования.

Извините за мой английский, я немец :)

...