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!

推薦閱讀: