Flutter Android應用啟動白屏的解決方案
問題產生
默認生成的flutter工程,在啟動時候會白屏,設備性能越差,白屏時間越長。原生Android開發也會遇到類似問題,啟動會產生白屏或者黑屏問題。在Android開發中通常是設置一個主題文件,這裡不展開說。
如何解決
flutter其實已經提供瞭解決方案。打開flutter工程目錄“\android\app\src\main”下的AndroidManifest.xml文件,可以看到如下內容:
這裡英文的大意是:在flutter渲染第一幀之前,可以通過這裡的配置顯示一個Android view,用來顯示一張啟動圖片。對於app啟動加載和flutter開始渲染之間的一段時間,起到一個良好的過渡。總而言之,這裡的配置就是來實現我們的啟動圖片,消除白屏或者黑屏。
這裡要註意一下,我當前用的flutter版本是2.12.0,低版本的配置不是這樣的,但是大概原理相同。
看到這裡我們就已經知道,去修改“@drawable/launch_background”好瞭。
<?xml version="1.0" encoding="utf-8"?> <!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/white" /> <!-- You can insert your own image assets here --> <!-- <item> <bitmap android:gravity="center" android:src="@mipmap/launch_image" /> </item> --> </layer-list>
改成如下:
<?xml version="1.0" encoding="utf-8"?> <!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:gravity="fill" android:src="@mipmap/doubanio" /> </item> </layer-list>
mipmap/doubanio是你放在mipmap目錄下的一張png格式的圖片。這樣app再啟動的時候就不是白屏,而是一張你自定義的圖片。
android:gravity=”fill”的意思是將圖片設置為拉伸,可以達到鋪滿全屏的效果。
另外要註意的是工程目錄下會有多個drawable和mipma文件,記得都要做修改。
總結
到此這篇關於Flutter Android應用啟動白屏解決的文章就介紹到這瞭,更多相關Flutter Android應用啟動白屏內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Android app啟動圖適配方法實例
- Android啟動頁優化之實現應用秒開
- 如何使用Flutter發佈安卓應用
- Android自定義ProgressBar實現漂亮的進度提示框
- Android開發手冊Button實現selector選擇器