第二百八十六回

news2024/9/25 2:35:41

文章目录

  • 概念介绍
  • 实现方法
  • 示例代码

我们在上一章回中介绍了如何拦截路由相关的内容,本章回中将介绍页面转场动画.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

概念介绍

我们在上一章回中介绍了路由拦截相关的内容,本章回中将使用路由拦截实现转场动画。这里介绍的转场动画表示页面之间切换时的动画效果,在默认情况下Android系
统中画面之间跳转时会从右向左进行,而且带着渐入的动画。IOS系统中画面之间跳转时会从下到上,也带着渐入效果。我们在项目中可以使用系统默认的渐入动画,也可
以自定义动画,这个动画通常称为转场动画。

实现方法

我们通过PageRouteBuilder组件来实现转场动画,该组件的属性如下:

  • pageBuilder属性:主要用来创建路由,它是方法类型,方法的参数中包含动画对象;
  • transitionDuration属性:主要用来控制动画的播放时间;
  • fullscreenDialog属性:主要用来控制页面是否以对话框窗口显示,默认值为false;
    这三个参数中第一个参数包含的信息最多,它是方法类型,该方法的函数原型如下:
    Widget Function(BuildContext context, Animation animation, Animation secondaryAnimation);
    从函数原型中可以看到,该方法的第一个参数是BuildContext类型,主要用来创建Widget,就是方法的返回值,这个Widget就是当前页面将要跳转到的页面。剩下
    的两个参数是Animation类型,其中包含动画对象,不过我使用时发现只有第二个参数中有值,第三个参数中没有值,跳转界面显示为黑色。

示例代码

介绍完转场动画的实现方法后,我们通过示例代码来演示:

///这里使用了PageRouteBuilder类和FadeTransition类
PageRouteBuilder(
    ///把动画传递给路由,annimation可以自己定义也可以使用参数中的默认值,不过2没有值
    pageBuilder:(context,animation1,animation2) {
      ///创建渐变组件主要使用了它的opacity属性
      return FadeTransition(
        opacity: animation1,
        child: SecondRouter(data: "animation",),);
    },
  fullscreenDialog: true,
  ///用来控制动画播放时长
  transitionDuration:const Duration(seconds: 3),
);

上面的代码中使用了FadeTransition组件的opacity属性来承载动画,动画值来自pageBuilder属性对应方法中的参数。我们也可以使用自定义的动画,与动画相关
的内容,我们将在后面章回中介绍。把上面的代码放到路由拦截器中,这样就可以在页面跳转时添加上动画效果,编译并且运行上面的程序,可以看到页面从下而上进入屏
幕,并且呈现出颜色渐变的动画效果。我在这里就不演示程序运行结果了,建议大家自己动手去实践。
看官们,关于"页面转场动画"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

《动手学深度学习(PyTorch版)》笔记3

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,本书源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode测试通过。 Chapter3 Linear …

长城资产信息技术岗24届校招面试面经

本文介绍2024届秋招中,中国长城资产管理股份有限公司的信息技术岗岗位一面的面试基本情况、提问问题等。 10月投递了中国长城资产管理股份有限公司的信息技术岗岗位,所在部门为长城新盛信托有限责任公司。目前完成了一面,在这里记录一下一面经…

Puppeteer结合Jest对网页进行测试

之前我们使用Puppeteer进行网页爬虫(以及自动化操作),这篇文章主要验证一下Puppeteer测试的可实现性。 项目设置 让我们从设置一个基本的React应用程序开始。 我们将安装其他依赖项,如Puppeteer和Faker。 为了这篇文章的目的,我创建了一个…

ASP.NET Core WebAPI从HTTPS调整为HTTP启动

使用VS2022创建WebAPI项目时,默认勾选“配置HTTPS(H)”,这样启动WebAPI时以https方式启动。   如果要从HTTPS调整为HTTP启动,需要修改项目中以下几处,首先是Program.cs中删除app.UseHttpsRedirection()语句,删除后…

gitlab runner 安装、注册、配置、使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

GitLab升级版本(任意用户密码重置漏洞CVE-2023-7028)

目录 前言漏洞分析影响范围查看自己的GitLab版本升级路程 升级过程13.1.1113.8.8 - 14.0.1214.3.614.9.5 - 16.1.6 前言 最近GitLab发了个紧急漏洞需要修复,ok接到命令立刻着手开始修复,在修复之前先大概了解一下这个漏洞是什么东西 漏洞分析 1、组件…

免费的 UI 设计资源网站 Top 8

今日与大家分享8个优秀的免费 UI 设计资源网站。这些网站的资源包括免费设计材料站、设计工具、字体和其他网站,尤其是一些材料站。它们是免费下载的,材料的风格目前很流行,适合不同的项目。非常适合平面设计WEB/UI设计师收藏,接下…

.git 文件夹结构解析

.git 文件夹结构解析 在这篇文章就让我们来看看这个 Git 仓库里的文件分别都是用来干什么的,以及在执行了相关的 Git 命令后这些文件会如何响应。 hooks(钩):存放一些shell脚本info:存放仓库的一些信息logs&#xff…

1分钟部署幻兽帕鲁联机服务,PalWorld服务器搭建教程(阿里云)

1分钟部署幻兽帕鲁联机服务,PalWorld服务器搭建教程 最近这游戏挺火,很多人想跟朋友联机,如果有专用服务器,就不需要房主一直开着电脑,稳定性也好得多。 概述 幻兽帕鲁是Pocketpair开发的一款开放世界生存制作游戏&…

Linux系统Shell脚本编程之条件语句

一、条件测试 Shell 环境根据命令执行后的返回状态值 " $? " 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。使用专门的测试工具 test 命令,可以对特定条件进行测试,并…

金融OCR领域实习日志(一)

一、OCR基础 任务要求: 工作原理 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用…

先进车辆驾驶舱系统的强大网络安全协议

近年来,车辆驾驶舱系统发展迅速,融入了导航、娱乐和车辆性能监控系统等先进技术。随着驾驶舱变得更加互联和依赖软件,它们也变得更容易受到网络安全威胁。实施强大的网络安全协议对于保护驾驶员和乘客以及保持车辆运行的完整性至关重要。 本…

支付宝推出新年“五福节”活动,新增四大AI玩法;大型语言模型综合指南

🦉 AI新闻 🚀 支付宝推出新年“五福节”活动,新增四大AI玩法 摘要:支付宝宣布今年的“集五福”活动升级为“五福节”,新增了四大AI玩法:飙戏小剧场、时空照相馆、会说话红包和大家来找福。用户可以通过拼…

uniapp canvas做的刮刮乐解决蒙层能自定义图片

最近给湖南中烟做元春活动&#xff0c;一个月要开发4个小活动&#xff0c;这个是其中一个难度一般&#xff0c;最难的是一个类似鲤鱼跃龙门的小游戏&#xff0c;哎&#xff0c;真实为难我这个“拍黄片”的。下面是主要代码。 <canvas :style"{width:widthpx,height:hei…

c语言-枚举和联合体

文章目录 前言一、枚举类型1.1 枚举类型的定义1.2 枚举类型的使用1.3 枚举的优点 二、联合体类型2.1 联合体类型的定义2.2 联合体类型的特点2.3 联合体大小的计算 总结 前言 本篇文章介绍c语言中的枚举类型和联合体类型 一、枚举类型 1.1 枚举类型的定义 枚举类型和结构体类…

【C++干货铺】C++中的四种类型转换

个人主页点击直达&#xff1a;小白不是程序员 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 C语言中的类型转换 为什么C需要四种类型转化 C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast RTTI C语言中的类型转换 在C语言中&…

2023 IoTDB Summit:中核武汉核电运行技术股份有限公司主管工程师方华建《IoTDB在核电数字化转型过程的应用实践》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

ERP读书笔记20240125-1

ERP&#xff08;Enterprise Resource Planning&#xff0c;企业资源计划&#xff09;的发展经历了从 MRP&#xff08;Material Requirements Planning&#xff0c;物料需求计划&#xff09;到 MRP2&#xff08;Manufacturing Resources Planning&#xff0c;制造资源计划&#…

OpenCV-26 拉普拉斯算子

一、拉普拉斯算子概念及其推导 索贝尔算子是模拟一阶导数&#xff0c;一阶导数越大的地方说明变化越剧烈&#xff0c;越有可能是边缘。 但是如果我们对f&#xff08;t&#xff09;求二阶导数呢&#xff1f; 可以发现边缘处的二阶导数 0&#xff0c;因此&#xff0c;我们可以利…

跟着cherno手搓游戏引擎【10】使用glm窗口特性

修改ImGui层架构&#xff1a; 创建&#xff1a; ImGuiBuild.cpp&#xff1a;引入ImGui #include"ytpch.h" #define IMGUI_IMPL_OPENGL_LOADER_GLAD//opengl的头文件需要的定义&#xff0c;说明使用的是gald #include "backends/imgui_impl_opengl3.cpp" …