美文网首页Flutter学习
解决 flutter启动闪现白屏/黑屏

解决 flutter启动闪现白屏/黑屏

作者: 三也视界 | 来源:发表于2020-04-06 11:13 被阅读0次

    修改主题解决闪现白屏/黑屏

    问题描述:

    市场上有很多应用,在启动的时候,会出现闪现黑屏或白屏,有的应用却没有。究其原因,是主题在搞鬼。

    问题分析

    当单击应用的图标时,Android会为被单击的应用创建一个进程,然后创建一个Application实例,然后应用主题,然后启动Activity。
    因为启动Activity也是需要时间的,这之间的时间间隔,便是闪现白屏或黑屏的时间。

    解决方案

    为解决启动时闪现白屏或黑屏的问题,我们可以从主题下手,为应用创建一个透明的主题。

    第一步:创建一个透明主题。

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">    
        <!--设置透明背景-->
        <item name="android:windowIsTranslucent">true</item>
    </style>
    
    

    第二步:在AndroidManifest.xml中为application应用主题。

     <application
          android:name=".MainApplication"
          android:allowBackup="true"
          android:label="@string/app_name"
          android:icon="@mipmap/ic_launcher"
          android:theme="@style/AppTheme">
    
    

    这样一来,启动时变不会闪现黑屏或白屏了。

    如果,你的应用需要一个特定的主题,但该主题不是透明的,你可以先将application的默认主题设置成透明的主题,然后在程序启动后(可以在启动页进行),通过public void setTheme(int resid)方法将主题设置成你想要的主题即可。

    系统默认launch_background.xml,增加开屏图片,否则可能会白屏

    <?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/splash" />
        </item>
    </layer-list>
    
    image.png

    相关文章

      网友评论

        本文标题:解决 flutter启动闪现白屏/黑屏

        本文链接:https://www.haomeiwen.com/subject/tlwiuhtx.html