已淘汰的 Splash Screen API 遷移
如何從 Manifest/Activity 定義的 splash screen 遷移。
在 Flutter 2.5 之前,Flutter 應用程式可以透過在應用程式的 manifest 檔案
(AndroidManifest.xml)中定義 splash screen,或是在其 FlutterActivity
中實作
provideSplashScreen,或同時採用這兩種方式。這會在 Android 啟動畫面顯示之後、Flutter
繪製出第一個畫面之前,短暫顯示自訂的 splash screen。自 Flutter 2.5 起,這種做法已經被淘汰。
Flutter 現在會自動維持 Android 啟動畫面顯示,直到 Flutter 繪製出第一個畫面為止。
若要從自訂 splash screen 遷移至僅定義自訂啟動畫面,請依照下列步驟,根據你在 2.5 版本之前如何定義 自訂 splash screen 進行調整。
在 FlutterActivity
中定義自訂 splash screen
-
找到你的應用程式在
FlutterActivity中對provideSplashScreen()的實作,並將其刪除。 這段實作通常會建立你的應用程式自訂的 splash screen,並作為Drawable。例如:java@Override public SplashScreen provideSplashScreen() { // ... return new DrawableSplashScreen( new SomeDrawable( ContextCompat.getDrawable(this, R.some_splash_screen))); } -
請依照下方章節的步驟,確保你的
Drawable啟動畫面(在前述範例中為R.some_splash_screen) 已正確設定為應用程式的自訂啟動畫面。
在 Manifest 中定義自訂 splash screen
-
找到你的應用程式的
AndroidManifest.xml檔案。 在此檔案中,找到activity元素。 在該元素內,確認android:theme屬性以及以io.flutter.embedding.android.SplashScreenDrawable定義 splash screen 的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>
Unless stated otherwise, the documentation on this site reflects Flutter 3.44.0. Page last updated on 2026-06-14. View source or report an issue.