Flutter应用启动时短暂显示灰/古铜色背景问题咨询
问题原因
你遇到的不是构建环节的bug,属于Android系统的默认行为:应用冷启动时,系统会先加载一个「初始预览窗口」占位,避免用户点击图标后长时间无反馈。你看到的数毫秒古铜色背景,就是这个预览窗口使用的默认主题色,和你给出的构建配置无关,Tinder等应用出现相同问题,也是因为没有针对性处理这个初始预览窗口的样式。
这个现象和AndroidManifest配置直接相关:你在Manifest中给启动页MainActivity指定了android:theme="@style/LaunchTheme",这个主题的默认背景色就是你看到的古铜色。
解决方案
按照以下步骤修改即可修复:
- 打开项目下
android/app/src/main/res/values/styles.xml(如果适配了深色模式还要同步修改values-night目录下的同名文件) - 找到
LaunchTheme样式条目,修改android:windowBackground属性值,替换为你想要的背景色/闪屏背景图,示例配置如下:
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <!-- 将背景改为和你的Splash screen一致的颜色或drawable即可 --> <item name="android:windowBackground">@drawable/launch_background</item> <!-- 如果应用是全屏启动可以增加下面这行配置 --> <item name="android:windowFullscreen">true</item> </style>
如果不想显示这个预览窗口,可以在LaunchTheme中加入以下配置(不推荐,会让用户觉得应用启动响应慢):
<item name="android:windowDisablePreview">true</item>
- 修改完成后重新打包运行,debug和release版本的古铜色背景都会消失。
如果你的应用需要适配Android 12及以上系统的原生闪屏API,同步对应修改新的闪屏主题配置即可保证全系统版本表现一致。
内容的提问来源于stack exchange,提问作者zakiblacki
相关产品推荐
相关产品推荐

