Flutter Android应用启动白屏的解决方案

 更新时间:2021年11月11日 12:00:06   作者:冬天的毛毛雨  
任何一个app基本都会设计一个启动页,今天我们就来看看怎么在flutter项目中设置启动页,这篇文章主要给大家介绍了关于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应用启动白屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android剪贴板用法详解

    Android剪贴板用法详解

    这篇文章主要介绍了Android剪贴板用法详解,以实例的形式对Android中剪贴板的各类传值方法做了较为详细的讲述,需要的朋友可以参考下
    2014-10-10
  • Android自定义View绘制贝塞尔曲线实现流程

    Android自定义View绘制贝塞尔曲线实现流程

    贝塞尔曲线的本质是通过数学计算的公式来绘制平滑的曲线,分为一阶,二阶,三阶及多阶。但是这里不讲数学公式和验证,那些伟大的数学家已经证明过了,所以就只讲讲Android开发中的运用吧
    2022-11-11
  • Android原生绘图工具Canvas详细

    Android原生绘图工具Canvas详细

    上一篇文章给大家介绍了Android原生绘图工具Paint,然而android中提供了类似的工具Canvas和Paint,分别对应画布和画笔,所以今天的这篇文章就来介绍Androi原生绘图的另一个工具Canvas,感兴趣的小伙伴一起来学习下面文章内容
    2021-09-09
  • Android离线缓存的实例代码

    Android离线缓存的实例代码

    android很多时候需要考虑缓存的问题,本篇文章主要介绍了Android离线缓存的实例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Flutter 包管理器和资源管理使用学习

    Flutter 包管理器和资源管理使用学习

    这篇文章主要为大家介绍了Flutter 包管理器和资源管理使用学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Android设置项目为系统APP方法

    Android设置项目为系统APP方法

    大家好,本篇文章讲的是Android设置项目为系统APP介绍,感兴趣的同学赶快来看一看吧,希望本篇文章对你起到帮助
    2021-11-11
  • Android操作系统之内存回收策略

    Android操作系统之内存回收策略

    Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使应用程序关闭但不退出,并由操作系统进行进程的回收管理
    2016-01-01
  • 详解Android TabHost的多种实现方法 附源码下载

    详解Android TabHost的多种实现方法 附源码下载

    这篇文章主要为大家详细介绍了Android TabHost的多种实现方法 文章中针对每一种实现方法都附有源码进行下载,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • android UI绘制加减号按钮

    android UI绘制加减号按钮

    这篇文章主要为大家详细介绍了android UI绘制加减号按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Android之有效防止按钮多次重复点击的方法(必看篇)

    Android之有效防止按钮多次重复点击的方法(必看篇)

    下面小编就为大家带来一篇Android之有效防止按钮多次重复点击的方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论