1

我最近想创建一个设置,在我的 android 应用程序中启用夜间模式,我在互联网上搜索并找到了一个很好的解决方案,其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段......:

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

...为我的 MainActivity 启用暗模式(如果在我的应用设置中启用)。它工作得很好,并在“DarkMode”中改变了我的 MainActivity!但是,如果我打开另一个活动,这不会像主活动那样以暗模式出现,但是如果我将上面的代码行添加到这个新活动,它也会以暗模式开始。所以我的问题:

我是否必须在每个活动中调用此代码行,或者有没有办法为我的应用程序中的任何活动设置全局夜间模式?

更新

我刚刚在 super.onCreate() 和 setContentView() 方法之前在一个新活动中调用了代码 baove,并且我的整个应用程序主题发生了变化。但是,如果我在 MainActivity 中调用它,我的 MainActivity 的主题就会发生变化......这真的很奇怪。我可以在 MainActivity 中更改整个主题吗?

提前谢谢你!

4

1 回答 1

1

好的,我找到了解决方案!对于任何有同样问题的人,这是为整个应用程序应用深色设计的正确方法:我从这个 NICE 网站得到它

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

这很简单,你只需要使用:

AppCompatDelegate.setDefaultNightMode(mode);

代替

getDelegate().setLocalNightMode(mode);

很简单,但真的很有用!!!快乐编码。

对不起我的英语,我是德国人:)

于 2019-05-29T20:08:41.060 回答