在 Android 12 及更高版本中,启动画面可能会显示不正确,这是由于API的行为不一致所导致的。因此,我们需要为每种情况提供不同的代码解决方案。
情况一:自定义启动画面,且不使用默认主题
如果您正在自定义启动画面且不使用默认主题,则您需要遵循以下代码示例:
在您的Activity中使用以下代码:
if (android.os.Build.VERSION.SDK_INT >= 31) {
View decorView = getWindow().getDecorView();
int newUiOption = decorView.getSystemUiVisibility();
newUiOption |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
newUiOption |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(newUiOption);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
情况二:使用默认主题
如果您使用的是默认主题,则无需进行任何更改。Android 系统会自动处理启动画面的呈现方式。
通过遵循上述代码示例,您可以解决 Android 12 Splash Screen API 不一致的行为问题。