Android 12下Flutter启动屏无法全程全屏的解决方案咨询
解决Flutter启动屏初始显示圆形图标、无法全程全屏的问题
核心原因
你看到的初始圆形图标是Android 12+系统默认的启动屏(基于应用自适应图标),而非flutter_native_splash生成的自定义启动屏。问题出在pubspec.yaml的Android 12配置错误,加上手动修改Android配置文件导致的冲突。
解决方案
1. 恢复Android配置文件(禁用手动修改)
flutter_native_splash会自动生成启动屏所需的Android配置文件,手动修改会导致配置冲突:
- 备份
android/app/src/main/AndroidManifest.xml、android/app/src/main/res/values/styles.xml、android/app/src/main/res/drawable/launch_background.xml - 运行命令清除缓存:
flutter clean - 删除上述三个文件,让插件重新生成正确的配置。
2. 修正pubspec.yaml的启动屏配置
将Android 12部分的image替换为background_image(image是前景图标属性,会生成圆形样式的启动屏),移除不需要的icon_background_color:
dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 flutter_native_splash: ^2.2.9 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter_native_splash: color: "#ffffff" image: assets/images/rasta.png color_dark: "#121212" image_dark: assets/images/rasta.png fullscreen: true android_12: background_image: assets/images/rasta.png background_image_dark: assets/images/rasta.png fullscreen: true
3. 重新生成启动屏资源
运行命令让插件生成最新的启动屏配置:
flutter pub run flutter_native_splash:create
4. 验证效果
重新编译运行应用,启动屏将全程显示全屏图片,不再出现初始圆形图标。
补充说明
- Android 12+的Splash Screen API优先级高于传统的
launch_background.xml,必须通过flutter_native_splash的android_12配置项指定全屏背景图,才能覆盖系统默认的自适应图标启动屏。 - 确保应用的
flutterEmbedding版本为2(你的配置已满足),这是flutter_native_splash正常工作的前提。
内容的提问来源于stack exchange,提问作者Kevnlan
相关产品推荐
相关产品推荐

