我最近想创建一个设置,在我的 Android 应用程序中启用夜间模式,我在互联网上搜索并找到了一个很好的解决方案,其中包含 AppCompatDelegate 的 DayNight 主题和一个简短的代码片段...:
if(settingsSharedPreferences.getBoolean(getString(R.string.design_dark_design_key),false))
{
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}
...为我的 MainActivity 启用深色模式(如果在我的应用程序设置中启用了该模式)。它工作得很好,并改变了我在“DarkMode”中的MainActivity!但是,如果我打开另一个活动,这不会像主活动那样以黑暗模式出现,但如果我将上面的代码行添加到这个新活动中,它也会以黑暗模式启动。所以我的问题是:
我是否必须在每个活动中调用此代码行,或者是否有办法为我的应用程序中的任何活动设置全局夜间模式?
UPDATE:
在 super.onCreate() 和 setContentView() 方法以及我的整个应用程序主题更改之前,我刚刚在新活动中调用了代码 baove。但如果我在 MainActivity 中调用它,我的 MainActivity 的主题就会改变......这真的很奇怪。
我可以在 MainActivity 中更改整个主题吗?
提前谢谢您!
好的,我找到了解决方案!
对于遇到同样问题的任何人,这是为整个应用程序应用深色设计的正确方法:
我从这个不错的网站得到的
https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/ https://blog.iamsuleiman.com/daynight-theme-android-tutorial-example/
这非常简单,您只需使用:
AppCompatDelegate.setDefaultNightMode(mode);
代替
getDelegate().setLocalNightMode(mode);
很简单,但是真的很有用!!!快乐编码。
抱歉我的英语不好,我是德国人:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)