Flutter Android应用启动白屏的解决方案
作者:冬天的毛毛雨 发布时间:2022-10-02 04:08:04
标签:flutter,启动,白屏幕
目录
问题产生
如何解决
总结
问题产生
默认生成的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文件,记得都要做修改。
来源:https://juejin.cn/post/7028175873157103647
0
投稿
猜你喜欢
- 本文实例为大家分享了struts2实现多文件上传的具体代码,供大家参考,具体内容如下首先搭建好struts2的开发环境,导入struts2需
- 1.什么是servlet?sun(oracle)公司制订的一种用来扩展web服务器端功能的组件规范。背景:常用的web服务器:apache
- 概念代理:为控制A对象,而创建出新B对象,由B对象代替执行A对象所有操作,称之为代理。一个代理体系建立涉及到3个参与角色:真实对象(A),代
- 前言去年7月时,在Github发布了一个开源的Banner库,虽然Star不多,但还是有少部分人使用。Banner效果:Github链接地址
- 本文以Java代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即:将PDF文档里面的彩 * 片或者文字等通过调用PdfGra
- 本文实例讲述了C#实现简单合并word文档的方法。分享给大家供大家参考。具体如下:using System;using System.Col
- 对列表进行排序也是我们经常遇到的问题,这里缩小一下范围,使用map来对列表排序。相信大家都有过TreeMap排序的经历,不过Map.Entr
- Android 中View.onDraw(Canvas canvas)的使用方法View通过View.onDraw(Canvas canva
- 近几天又温习了一下SpringMVC的运行机制以及原理我理解的springmvc,是设计模式MVC中C层,也就是Controller(控制)
- 在本篇中我要介绍两个概念,我觉得这两个东西必须一起来介绍,这样才能连贯。C# 2.0里我们已经匿名方法了,现在类型也玩起匿名来了,怪不得大家
- 本文实例讲述了C#警惕匿名方法造成的变量共享。分享给大家供大家参考,具体如下:匿名方法匿名方法是.NET 2.0中引入的高级特性,“匿名”二
- Springboot 整合 RocketMQ 收发消息创建springboot项目pom.xml添加rocketmq-spring-boot
- 对于超大数字的运算,用long long int仍然不能解决,这时候就需要考虑通过模拟运算和数组存储来实现高精度运算。本文讨论借助C++的s
- 这里设计一个自定义View,继承了ScrollView,实现可以下拉里面的内容,松手后画面弹回,这个自定义的View可以当做ScrollVi
- ArrayList的构造方法(前置知识)可快速过一些基本成员变量:// 默认初始大小private static final int DEF
- SpringBoot的具体介绍可以参看其他网上介绍,这里就不多说了,就这几天的学习,个人理解,简而言之: (1)它是Spring的
- 一、手机版本问题,大多数文章没有涉及这个点,导致他们的代码并无法正常使用M版本以上需要使用的Type--> TYPE_APPLICAT
- 1.基本介绍SpringBoot 支持的 webServer: Tomcat, Jetty, or UndertowSpringBoot 应
- Android application捕获崩溃异常怎么办?通用 application1、收集所有 avtivity 用于彻底退出应用2、捕
- 今天看一个教程,看到一个颜色渐变的ProgressBar,觉得有点意思,所以记录一番。下面这个是效果图颜色渐变的ProgressBar看到效