如何解决启动页(Splash Screen)加载前出现的白屏问题?
解决应用启动前出现带图标白屏的问题
Android 端处理方案
- 检查
styles.xml里的启动页主题配置,别单独改背景色,直接把android:windowBackground设为你的启动页drawable,示例代码:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash_screen_drawable</item> <item name="android:windowFullscreen">true</item> </style>
- 保证启动页Activity在AndroidManifest里用这个主题,而且不要在Activity的onCreate里设置额外背景,防止二次绘制引发白屏。
- 别用
setContentView加载布局,直接靠主题的windowBackground当启动页内容,减少初始化耗时。
iOS 端处理方案
- 在
LaunchScreen.storyboard或LaunchScreen.xib里,把整个视图的背景色和启动页统一,图标要作为启动页的一部分,别用系统默认的应用图标。 - 检查项目的
Info.plist,确认UILaunchStoryboardName指向正确的启动页文件,没配置错。 - 别在
AppDelegate或SceneDelegate的启动逻辑里加耗时操作,这些会拖慢启动页显示,导致中间出白屏。
通用排查要点
- 看看启动页资源是不是太大,过大的图片会加载慢,引发短暂白屏。可以压缩图片,用合适的格式(比如WebP、压缩后的PNG)。
- 确认应用初始化逻辑(比如第三方SDK初始化)是不是放在启动页显示之后再执行,提前初始化会阻塞UI线程,拉长白屏时间。
内容的提问来源于stack exchange,提问作者jamin sampang
相关产品推荐
相关产品推荐

