从已弃用的闪屏页 API 迁移
在 Flutter 2.5 版本之前,Flutter 应用程序可以通过定义 manifest 文件 (AndroidManifest.xml
)
中的元数据,或在其 FlutterActivity
中实现 provideSplashScreen
,再或者两者兼顾使用,来添加闪屏页。闪屏页会在 Android 启动页显示后,Flutter 首帧绘制前短暂显示。从 Flutter 2.5 版本起,这种方式已被弃用。
Flutter 现在会自动保持显示 Android 启动页,直至首帧绘制。
请按照 Flutter 2.5 版本之前自定义应用程序闪屏页相应的操作步骤,将自定义的闪屏页迁移到只用自定义应用程序的启动页。
在 FlutterActivity
中自定义闪屏页
-
在应用程序的
FlutterActivity
中找到provideSplashScreen()
方法的实现并 将其删除。该方法应该包括了将应用程序的自定义闪屏页构建成一个Drawable
的实现。例如:java@Override public SplashScreen provideSplashScreen() { // ... return new DrawableSplashScreen( new SomeDrawable( ContextCompat.getDrawable(this, R.some_splash_screen))); }
-
请按照接下来章节中的步骤,确保你的
Drawable
闪屏页(上个步骤示例中的R.some_splash_screen
)已正确配置为应用程序的自定义启动页。
在 Manifest 中自定义闪屏页
-
在应用程序的
AndroidManifest.xml
文件中找到activity
元素。在此元素中,找到android:theme
属性以及定义闪屏页为io.flutter.embedding.android.SplashScreenDrawable
的meta-data
元素,以便在后续的步骤中进行更新。例如:xml<activity // ... android:theme="@style/SomeTheme"> // ... <meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable" android:resource="@drawable/some_splash_screen" /> </activity>
-
如果未指定
android:theme
属性,请添加该属性并为应用程序的启动页 定义启动主题 -
删除
meta-data
元素,因为 Flutter 不再使用该元素,如果保留它可能会导致崩溃。 -
在应用程序的
style
资源中找到由android:theme
属性指定的主题。该主题指定了应用程序的启动主题。请确保style
将android:windowBackground
属性配置为你的自定义闪屏页。例如:xml<resources> <style name="SomeTheme" // ... > <!-- Show a splash screen on the activity. Automatically removed when Flutter draws its first frame --> <item name="android:windowBackground">@drawable/some_splash_screen</item> </style> </resources>
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-04-27。 查看文档源码 或者 为本页面内容提出建议。