Как включить MODE_NIGHT_YES в каждом действии с помощью setLocalNightMode()?
Недавно я хотел создать настройку, чтобы включить ночной режим в своем приложении для Android, я искал в интернете и нашел хорошее решение с темой DayCight AppCompatDelegate и коротким фрагментом кода...:
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 ответ
Хорошо, я нашел решение! Для всех, у кого такая же проблема, это правильный способ применения темного дизайна для всего вашего приложения: я получил его с этого сайта NICE
https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/
И это довольно легко, вы просто должны использовать
AppCompatDelegate.setDefaultNightMode(mode);
вместо
getDelegate().setLocalNightMode(mode);
Довольно просто, но действительно полезно!!! Удачного кодирования.
Извините за мой английский, я немец:)