第四百二十五回

news2024/9/9 4:46:00

文章目录

  • 1. 概念介绍
  • 2. 实现方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"使用intl插件时遇到的问题"相关的内容,本章回中将介绍实现splash页面的另外一种方法.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回中介绍的splash页面就是程序启动时显示的页面,我们在一百四十一回介绍过它的实现方法,不过我们介绍的是官方提供的方法,我们将在本章回中介绍
另外一种实现方法:通过flutter_native_splash插件实现splash页面。

2. 实现方法

我们首先在yaml配置文件中添加包,并且通过pub get命令把包获取到项目中来,不过添加时对版本要求比较麻烦,经常会和其它包有冲突,下面是一个错误示例:

Because every version of flutter_test from sdk depends on path 1.8.3 and flutter_native_splash >=2.3.12 depends on path ^1.9.0, flutter_test from sdk is incompatible with flutter_native_splash >=2.3.12.
So, because fluttercookbook depends on both flutter_native_splash ^2.4.0 and flutter_test from sdk, version solving failed.

我的解决方法是尝试降低包的版本,多尝试几个版本就可以。添加完包后就可以使用了,下面是详细的使用方法,请大家参考:

  • 创建一个新的yaml文件,文件名必须是flutter_native_splash.yaml;
  • 在文件中配置相关信息,这些信息主要用来控制splash页面的颜色和图片等内容;
  • 在main文件中添加代码,主要用来初始化包,并且启动splash页面;
  • 在主页面中停止splash页面,然后会自动显示程序的主页面;
    上面的示步骤中也可以不创建yaml配置文件,而是直接在pubspec.yaml文件中配置,不过要顶格,不能向加入插件一样有空格。需要注意的是一定要移除splash页面,
    如果不移除splash,就不会进入主页面,导致程序一起卡着不动。
    此外,上面的步骤完成后可以在Android平台的程序上运行,在IOS平台上运行时需要把base.lproj拖入已经打开的xCode项目中,然后经弹窗中选择复制,这样就会
    复制一份启动项目的stroyboard到项目中。这个在官方文档中有详细介绍,我就不再介绍了。不过这个方法有待改进,因为程序编译都无法通过。

3. 示例代码

下面是程序的示例代码,与上一小节中的实现步骤完全匹配,请大家参考:

///yaml文件中的配置信息,可以参考官方文档
  color: "#42a5f5"
  #图片格式必须是png
  image: images/avata.png

/// 在main文件中添加代码,主要用来初始化包,并且启动splash页面;
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  runApp(const MyApp());
///  在MaterialApp的home属性对应的页面中移除splash页面
    void initState() {
    super.initState();

    ///可以在这里添加一些延时在主程序页面中移除splash,不然无法显示页面
    FlutterNativeSplash.remove();
  }

上面的代码运行时并没有实际的效果,也就是没有出现我期望的splash页面,不过程序启动时有延时,也就是说该功能起作用了,但是没有显示splash页面。总之我在
Android和iOS两个平台上都没有成功实现splash页面。我觉得可能是哪个地方没有设置好,但是和官方给的操作说明完全一致,还有一种可能就是flutter版本的的
问题,因为我在安装该插件时就发现了版本不兼容的问题。此外,从技术上来看,该插件修改了iOS工程下的storyboar文件,只是修改有错误,但是Android目录下控
制splash页面的xml文件没有任何的修改。所以我觉得这是splash页面没有生效的根本原因。

4. 内容总结

我们在本章回中介绍了如何通过flutter_native_splash插件实现splash页面。主要介绍了实现的步骤,并且给出了示例代码,不过比较遗憾在是没有真正在程序中
实现splash页面。没有实现的原因可能与我当前的flutter版本有关,大家也可以在评论区发表自己的意见。鉴于无法使用这个插件的原因,我们还是推荐使用官方提供
的方法来实现splash页面,具体的内容我们在开篇时介绍过,大家可以参考。
看官们,与"实现splash页面的另外一种方法"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JRT菜单

上一章搭建了登录界面的雏形和抽取了登录接口。给多组使用登录和菜单功能提供预留,做到不强行入侵别人业务。任何产品只需要按自己表实现登录接口后配置到容器即可共用登录界面和菜单部分。最后自己的用户关联到JRT角色表即可。 登录效果 这次构建菜单体系 首先用…

迭代器模式(统一对集合的访问方式)

目录 前言 UML plantuml 类图 实战代码 Iterator ArrayList Client 自定义迭代器 TreeNode TreeUtils Client 前言 在实际开发过程中,常用各种集合来存储业务数据并处理,比如使用 List,Map,Set 等等集合来存储业务数…

MyBatis是纸老虎吗?(七)

在上篇文章中,我们对照手动编写jdbc的开发流程,对MyBatis进行了梳理。通过这次梳理我们发现了一些之前文章中从未见过的新知识,譬如BoundSql等。本节我想继续MyBatis这个主题,并探索一下MyBatis中的缓存机制。在正式开始梳理前&am…

Python自动化测试环境搭建

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 请事先自行安装好​​Pycharm​​​软件哦,我…

【Python系列】获取字符串的长度

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Clip Converter - 视频在线下载方法

Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…

基于冠豪猪优化器(CPO)的无人机路径规划

该优化算法是2024年新发表的一篇SCI一区top论文具有良好的实际应用和改进意义。一键运行main函数代码自动保存高质量图片 1、冠豪猪优化器 摘要:受冠豪猪(crest Porcupine, CP)的各种防御行为启发,提出了一种新的基于自然启发的元启发式算法——冠豪猪…

#Linux系统编程(ps和kill命令)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)ps命令 可以列出系统中当前运行的那些进程。 命令格式:ps 参数(常用-aux) 命令功能:用来显示当前进程的状态 常…

应急响应实战笔记04Windows实战篇(2)

第2篇:蠕虫病毒 0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己&#xff…

Star 5.3k!纯Python开发的高效SQL 解析器!

目前从事大数据相关的开发,都离不开SQL,不管是关系型数据库还是非关系型数据,在做不同数据库间迁移或者转换的时候都会用到SQL转换。今天来为大家分享一个有趣的开源项目,SQLGlot,一个纯Python开发的SQL转换器&#xf…

VMware扩容硬盘

最近研究Oracle的备份导入导出功能,但是因为磁盘容量不够导致表空间的扩容没办法,从而没办法导入数据库的dmp文件。得想办法先扩容磁盘容量。话不多说上截图操作。 操作环境:VMware10 , Centos 6.9 VMware扩容硬盘步骤 一、关闭虚拟机&…

sizeof和strlen的使用及差异

sizeof 1.sizeof是操作符 2.sizeof计算操作数所占内存的大小,单位是字节(byte) 3.sizeof不关注内存中存放什么数据 4.sizeof比较通用不挑类型 strlen 1.strlen是库函数,使用需包含头文件string.h 2.strlen是求字符串长度的&#x…

L1-2 倒数第N个字符串

本题链接:PTA | 程序设计类实验辅助教学平台 题目: 样例: 输入 3 7417 输出 pat 思路: 根据题意,这道题是一道思维模拟题。 给出 n 位的小写字母字符串,其中进制位为 26 ,求进位1 到 倒数第 …

天工AI搜索引擎

相信正在看autosar架构相关内容的人来说,对于autosar相关知识或者配置项的生涩知识点可谓是苦之久矣,这个时候一个好的搜索引擎能带来的帮助太大了,不管是平时百度还是看文档都需要大量的时间去检索自己真正想知道的信息,偶然间发…

酒店管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/89036287 更多系统资源库…

Windows 频繁失去焦点分析

原文:https://blog.iyatt.com/?p14383 1 前言 刚才在打字的时候发现会随机失去焦点,然后又要用鼠标点一下正在输入的位置才能继续输入,特别烦。开始我怀疑是手碰到触摸板导致失去焦点,但是我用了差不多十年带触摸板的笔记本电脑…

Python框架篇(7):FastApi-依赖项

有时选择太多也会让人陷入焦虑,比如突然有一段自由时间,却因为想做的事情太多,最后把时间都浪费在了摇摆不定上,静不下心做最重要的事,或者说根本不知道最重要的事情是什么。---------- 《认知觉醒:开启自我改变的原动…

【干货】无源滤波器设计讲解,工作原理+设计步骤

今天给大家分享的是:无源模拟滤波器针对很多入门小白不懂滤波器设计,一些老工程师上班很多年有的也不懂得总结知识点,以及想学习不知道怎么系统学习的这一类人群,前方知识点来袭,请君放心食用~ 在信号处理领域&#x…

AXI-Stream——草稿版

参考自哔站:FPGA IP之AXI4-Lite AXI4-Stream_哔哩哔哩_bilibili 信号 传输层级从小到大 TKEEP和TSTRB共同决定了是哪种数据流

红外循迹,避障模块介绍

本节将介绍标题中三种模块的应用以及工作原理 上图中,黑色的是红外接收管,绿色的是红外发射管,他俩与发光二级管都非常像,但功能上却有所不同。 发光二级管:亮度在一定的时间内随电流的增大而增大。 红外发射管&…