我们在应用程序中实现了夜间模式。它的功能非常好,除了转换时出现的问题。我们使用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;
}
}
}
感谢阅读此内容。任何帮助都将不胜感激。