现在大多数应用都设置了沉浸式,但是在启动app的时候,会有一个白色+状态栏的界面,比较影响体验。
启动页

在安卓11系统运行时,可以看到一瞬间的白屏与蓝紫色的状态栏

安卓6.0系统没有这个情况

解决方法:
在style.xml中为启动页声明一个style,设置主题颜色透明和背景资源,可以解决这个问题
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<!-- 启动页 theme. baidu为自己切的一张白色.9图 -->
<style name="StartTheme" parent="AppTheme">
<item name="colorPrimary">@android:color/transparent</item>
<item name="colorPrimaryDark">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowBackground">@mipmap/baidu</item>
</style>
在启动页中去掉设置background的代码,在AndroidManifest.xml中为启动页设置主题
<activity android:name=".SplashActivity"
android:theme="@style/StartTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这样就和6.0系统的效果一样了,在打开应用的瞬间就可以显示出图片,并且状态栏是透明的
出现的问题
在使用.9图时,在少数设备上会出现导航栏兼容问题。在pixel上比较明显,导航栏会有部分被.9图遮盖

在华为手机上,在启动页面看起来没问题,但是切换到任务视图时会发现,导航栏那一块其实有灰色的占位。在小米手机上没有发现这个问题。不使用.9图时也不会有这个问题。
解决方法:
不使用.9图,或者在style中声明的<item name="android:windowBackground">@mipmap/baidu</item>改为<item name="android:background">@mipmap/baidu</item>,修改后可以解决导航栏的问题,但是在启动中(打开应用显示状态栏与白屏时)和显示启动页这两个状态,图片会发生非常轻微的偏移,可能是缩放方式导致的。
不知道成熟的大厂应用是用什么方法让.9图 启动图和导航栏这几个相互兼容的,有朋友知道的话欢迎在评论区指导一下。
本文介绍了在Android应用启动时出现状态栏白屏现象的解决方案,通过在style.xml中设置启动页风格为透明,并在AndroidManifest.xml中设定主题,可以消除安卓11系统的启动白屏。然而,使用.9图可能会导致导航栏兼容性问题,如在Pixel设备上导航栏被遮盖。解决方法包括避免使用.9图或调整style中的设置,但可能引入轻微的图片偏移。作者寻求大厂在处理.9图、启动图和导航栏兼容性方面的成熟做法。
700

被折叠的 条评论
为什么被折叠?



