1.创建valuse-night文件夹,设置夜间模式的color
2.修改夜间模式下的主题的样式为:Theme.AppCompat.DayNight.NoActionBar
3.点击控件切换日渐夜间模式
if (SPUtils.get(this, SPKey.NIGHT, false) as Boolean) {
SPUtils.put(this, SPKey.NIGHT, false)
// delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_NO
// recreate()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
} else {
SPUtils.put(this, SPKey.NIGHT, true)
// delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_YES
// recreate()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
}
4.在基类BaseActivity中给其他页面设置模式进行生效
@Override
protected void onResume() {
super.onResume();
Boolean isNight = (Boolean) SPUtils.get(this, SPKey.NIGHT, false);
if (isNight) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
}