我们为我们的应用程序实现了夜间模式。除了过渡之外,它就像一个魅力。我们正在使用 Base Application 类来实现它。问题是无论我们如何尝试,当配置更改时,我们都无法实现平滑过渡。
我们尝试以我们的风格实现进入和退出动画。但它适用于整个活动。所以它也会影响活动的其他转换。所以它没有用。
从图中可以看出,当配置更改时,屏幕上会出现黑色闪烁。
配置更改代码:
public static void applyTheme(@NonNull String themePref) {
switch (themePref) {
case LIGHT_MODE: {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
Log.d(Statics.LOG_TAG, "Applying day mode");
break;
}
case DARK_MODE: {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
Log.d(Statics.LOG_TAG, "Applying night mode");
break;
}
default: {
Log.d(Statics.LOG_TAG, "Applying automatic mode");
if (BuildCompat.isAtLeastP()) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
}
break;
}
}
}
感谢您阅读本文。任何帮助表示赞赏。