2

我知道通过使用AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);夜间模式可以在活动中实现。但我想要的是——在应用程序的所有活动和片段中,设置中会有一个激活夜间模式的选项。我怎样才能做到这一点?

4

2 回答 2

7

实现这一目标的一种方法:

  • 当您在设置活动(或任何)中选择动作夜间模式时,您可以维护一个标志(并保存在 sharedpreference 或任何临时存储中)。

  • 检查每个活动和片段上的这个标志,如果标志是肯定的,设置你使用的夜间模式,

    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

于 2017-10-27T13:12:01.100 回答
3

您可以使用NightModeHelper来实现这一点,只需在您的活动顶部添加以下行,onCreate就在super.onCreate();此处的想法是在我们创建任何视图之前执行此操作。所以新视图将使用正确的配置。

mNightModeHelper = new NightModeHelper(this, R.style.AppTheme);

在此处查看演示https://github.com/zouliping/AndroidNightMode

于 2017-10-27T13:13:38.243 回答