美文网首页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