实现夜间模式功能的正确方法
Proper way of implementing night mode feature
我知道使用 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
夜间模式可以在 activity 中实现。但我想要的是 - 在应用程序的所有活动和片段中激活夜间模式的设置选项。我该怎么做?
实现此目的的一种方法:
当您 select 设置 activity(或任何)中的动作夜间模式时
可以维护一个标志(并保存在 sharedpreference 或任何临时存储中)。
在每个 activity & 片段上检查这个标志,如果标志
是肯定的设置你使用的夜间模式,
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
您可以使用 NightModeHelper 来实现此目的,只需在 activity 的 onCreate
的顶部添加以下行,紧跟在 super.onCreate();
之后 这里的想法是在我们创建任何视图之前执行此操作。因此新视图将使用正确的配置。
mNightModeHelper = new NightModeHelper(this, R.style.AppTheme);
我知道使用 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
夜间模式可以在 activity 中实现。但我想要的是 - 在应用程序的所有活动和片段中激活夜间模式的设置选项。我该怎么做?
实现此目的的一种方法:
当您 select 设置 activity(或任何)中的动作夜间模式时 可以维护一个标志(并保存在 sharedpreference 或任何临时存储中)。
在每个 activity & 片段上检查这个标志,如果标志 是肯定的设置你使用的夜间模式,
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
您可以使用 NightModeHelper 来实现此目的,只需在 activity 的 onCreate
的顶部添加以下行,紧跟在 super.onCreate();
之后 这里的想法是在我们创建任何视图之前执行此操作。因此新视图将使用正确的配置。
mNightModeHelper = new NightModeHelper(this, R.style.AppTheme);