有时候想要本页面的某个组件,可以动画过渡到下个页面,就比如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组件相关推荐

  1. 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )

    文章目录 ◯.Hero 构造函数 一.圆形方形组件 二.创建页面 1 的组件 ( Hero 组件 1 ) 三.创建页面 2 的组件 ( Hero 组件 2 ) 四.完整代码示例 五.相关资源 ◯.He ...

  2. 一个优秀的可定制化Flutter相册组件,看这一篇就够了

    背景 在做图片.视频相关功能的时候,相册是一个绕不开的话题,因为大家基本都有从相册获取图片或者视频的需求.最直接的方式是调用系统相册接口,基本功能是满足的,一些高级功能就不行了,例如自定义UI.多选图 ...

  3. Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理

    优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维. 本文章实现的Demo效果,如下图所示: 1 首先是页面的主体 在这里使用的是Scaffold脚手架来构建 ...

  4. Flutter文本组件Text

    Flutter 文本组件Text 在android中,一个页面,一般是用 Activity 或者是一个Fragement 来加载显示出来的,而其中的 一个View 或者 一个布局文件(layout.x ...

  5. Flutter 自定义组件实战之Cupertino(iOS)风格的复选框

    继上一篇Flutter自定义组件的视频短课(视频地址: https://www.bilibili.com/video/BV1ap4y1U7UB/ )后,我们继续来聊自定义组件.视频中我为大家详解了Cu ...

  6. Flutter 自定义组件实战

    Flutter 自定义组件实战

  7. Flutter Container 组件

    目录 参数详解 代码示例 效果图 完整代码 Container 官网简介:一个便利的小部件,结合了常见的绘画,定位和大小调整小部件. 其实就是一个容器组件,既然是容器,那么,就一定可以装很多东西,而C ...

  8. Flutter Hero 实现共享元素转场动画

    系列文章 Flutter 旋转动画 - RotationTransition Flutter 平移动画 - 4种实现方式 Flutter 淡入淡出与逐渐出现动画 Flutter 尺寸缩放.形状.颜色. ...

  9. Flutter Hero 实现径向变换动画 — 圆形变成矩形的转场动画

    系列文章 Flutter 旋转动画 - RotationTransition Flutter 平移动画 - 4种实现方式 Flutter 淡入淡出与逐渐出现动画 Flutter 尺寸缩放.形状.颜色. ...

  10. 浅识Flutter 基本组件之TextField组件 输入框decoration属性

    浅识Flutter 基本组件之TextField组件 输入框decoration属性 decoration InputDecoration控制输人框提示信息样式的常用属性 InputDecoratio ...

最新文章

  1. (数据结构与算法)稀疏数组案例
  2. 浅谈开发模式及架构发展
  3. 插入移动硬盘_Win10插入移动硬盘或U盘有提示声但电脑中不显示的解决方法
  4. springboot获取客户端发来的数据
  5. python与excel-超简单:用Python让Excel飞起来
  6. 太牛了,值得收藏!7000字22张图,精讲 Redis 知识!
  7. 全志V3s 荔枝派WiFi RTL8723BS 连接
  8. 怎么用计算机按log以2为底,计算器上怎么按出log以2为底的数
  9. Materials Studio教程(中科大)
  10. 支付宝-线上资金授权(小程序)
  11. 全程pwm调光_PWM调光技术详解
  12. SD卡和TF卡的区别/差异
  13. Android开发丶一步步教你实现okhttp带进度的列表下载文件功能
  14. 强制清理CDN(DNS)缓存方法
  15. 【毕业设计】基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台
  16. Power Query简介(超级查询:获取与整理数据)
  17. 数据库有哪些类型?如何根据应用场景选择?终于有人讲明白了
  18. 巴贝奇通用计算机设计思想称为,计算机有运算速度快精确度高有记忆和逻辑判断能力.docx...
  19. C++程序设计教程(钱能)第四章 学习笔记
  20. 软件自动化测试订飞机票,用 Selenium 搞定自动化测试项目,途牛搜机票。

热门文章

  1. 老spring3.2版本 redistemplate 报错_卡普空“令人惊讶”的老系列新作,会是《恐龙危机》吗?...
  2. 487 金明的预算方案(分组背包问题扩展)
  3. 我的北漂之路 北漂如饮水,冷暖自知
  4. SouthernBiotech 艾美捷Fluoromount-G功能参数
  5. 计算机系统如何恢复出厂设置路由器,路由器恢复出厂设置的具体操作步骤-电脑自学网...
  6. 软件测试搭建环境--在Linux安装MySQL(详细),精细整理
  7. suma++[代碼分析一]: 主入口visualizer.cpp
  8. 注册Outlook如何跳过手机验证
  9. ubuntu下面高效率小工具总结
  10. PHP常见三种设计模式:单例、工厂、观察者