Flutter--Hero组件
有时候想要本页面的某个组件,可以动画过渡到下个页面,就比如Apple music中,底部打音乐图标,在打开播放页时能自己放大过度到播放页的位置,这时候就需要用页面跳转动画和hero组件来配合实现。
注意:hero组件不可以嵌套使用,比如将一个Container标记为hero,那么它的child不可以Hero组件。
import 'package:flutter/material.dart';const String iconTag = "icon";
const String titleTag = "title";class HeroAnimationPage extends StatelessWidget {const HeroAnimationPage({Key? key}) : super(key: key);@overrideWidget build(BuildContext context) {return Scaffold(body: Column(children: [const Spacer(),InkWell(child: Container(margin: const EdgeInsets.all(16),padding: const EdgeInsets.all(4),color: Colors.blueAccent,child: Row(children: [Container(width: 50,height: 50,color: Colors.grey,).hero(iconTag),const Text("Title").hero(titleTag)],),),onTap: () {Navigator.push(context, PageRouteBuilder(pageBuilder: (BuildContext context, animation, secondaryAnimation,) {return FadeTransition(opacity: animation,child: const Scaffold(body: HeroTargetPage(),),);},));},)],),);}
}class HeroTargetPage extends StatelessWidget {const HeroTargetPage({Key? key}) : super(key: key);@overrideWidget build(BuildContext context) {return Scaffold(body: Container(child: Column(children: [Container(color: Colors.red, width: 200, height: 200,).hero(iconTag),Row(children: [const Text("Title", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 22),).hero(titleTag)], mainAxisAlignment: MainAxisAlignment.center,)], mainAxisAlignment: MainAxisAlignment.spaceAround,),color: Colors.blueAccent,),);}
}extension WidgetExt on Widget {Hero hero(String tag) {return Hero(tag: tag, child: this);}
}
Flutter--Hero组件相关推荐
- 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )
文章目录 ◯.Hero 构造函数 一.圆形方形组件 二.创建页面 1 的组件 ( Hero 组件 1 ) 三.创建页面 2 的组件 ( Hero 组件 2 ) 四.完整代码示例 五.相关资源 ◯.He ...
- 一个优秀的可定制化Flutter相册组件,看这一篇就够了
背景 在做图片.视频相关功能的时候,相册是一个绕不开的话题,因为大家基本都有从相册获取图片或者视频的需求.最直接的方式是调用系统相册接口,基本功能是满足的,一些高级功能就不行了,例如自定义UI.多选图 ...
- Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理
优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维. 本文章实现的Demo效果,如下图所示: 1 首先是页面的主体 在这里使用的是Scaffold脚手架来构建 ...
- Flutter文本组件Text
Flutter 文本组件Text 在android中,一个页面,一般是用 Activity 或者是一个Fragement 来加载显示出来的,而其中的 一个View 或者 一个布局文件(layout.x ...
- Flutter 自定义组件实战之Cupertino(iOS)风格的复选框
继上一篇Flutter自定义组件的视频短课(视频地址: https://www.bilibili.com/video/BV1ap4y1U7UB/ )后,我们继续来聊自定义组件.视频中我为大家详解了Cu ...
- Flutter 自定义组件实战
Flutter 自定义组件实战
- Flutter Container 组件
目录 参数详解 代码示例 效果图 完整代码 Container 官网简介:一个便利的小部件,结合了常见的绘画,定位和大小调整小部件. 其实就是一个容器组件,既然是容器,那么,就一定可以装很多东西,而C ...
- Flutter Hero 实现共享元素转场动画
系列文章 Flutter 旋转动画 - RotationTransition Flutter 平移动画 - 4种实现方式 Flutter 淡入淡出与逐渐出现动画 Flutter 尺寸缩放.形状.颜色. ...
- Flutter Hero 实现径向变换动画 — 圆形变成矩形的转场动画
系列文章 Flutter 旋转动画 - RotationTransition Flutter 平移动画 - 4种实现方式 Flutter 淡入淡出与逐渐出现动画 Flutter 尺寸缩放.形状.颜色. ...
- 浅识Flutter 基本组件之TextField组件 输入框decoration属性
浅识Flutter 基本组件之TextField组件 输入框decoration属性 decoration InputDecoration控制输人框提示信息样式的常用属性 InputDecoratio ...
最新文章
- (数据结构与算法)稀疏数组案例
- 浅谈开发模式及架构发展
- 插入移动硬盘_Win10插入移动硬盘或U盘有提示声但电脑中不显示的解决方法
- springboot获取客户端发来的数据
- python与excel-超简单:用Python让Excel飞起来
- 太牛了,值得收藏!7000字22张图,精讲 Redis 知识!
- 全志V3s 荔枝派WiFi RTL8723BS 连接
- 怎么用计算机按log以2为底,计算器上怎么按出log以2为底的数
- Materials Studio教程(中科大)
- 支付宝-线上资金授权(小程序)
- 全程pwm调光_PWM调光技术详解
- SD卡和TF卡的区别/差异
- Android开发丶一步步教你实现okhttp带进度的列表下载文件功能
- 强制清理CDN(DNS)缓存方法
- 【毕业设计】基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台
- Power Query简介(超级查询:获取与整理数据)
- 数据库有哪些类型?如何根据应用场景选择?终于有人讲明白了
- 巴贝奇通用计算机设计思想称为,计算机有运算速度快精确度高有记忆和逻辑判断能力.docx...
- C++程序设计教程(钱能)第四章 学习笔记
- 软件自动化测试订飞机票,用 Selenium 搞定自动化测试项目,途牛搜机票。
热门文章
- 老spring3.2版本 redistemplate 报错_卡普空“令人惊讶”的老系列新作,会是《恐龙危机》吗?...
- 487 金明的预算方案(分组背包问题扩展)
- 我的北漂之路 北漂如饮水,冷暖自知
- SouthernBiotech 艾美捷Fluoromount-G功能参数
- 计算机系统如何恢复出厂设置路由器,路由器恢复出厂设置的具体操作步骤-电脑自学网...
- 软件测试搭建环境--在Linux安装MySQL(详细),精细整理
- suma++[代碼分析一]: 主入口visualizer.cpp
- 注册Outlook如何跳过手机验证
- ubuntu下面高效率小工具总结
- PHP常见三种设计模式:单例、工厂、观察者