当前位置: 首页 > 网络应用技术

颤抖的发展:使用英雄和埃罗诺德

时间:2023-03-08 20:27:27 网络应用技术

  我们经常看到,与页面的跳跃不同,在单击列表中,单击列表的详细信息时,某些应用程序会具有扩大的梯度效果。give用户无缝的开关通常称为共享元素转换动画,因此它如何实现扑?

  实际上,Flutter的官员为我们提供了非常有用的控制:英雄。

  中国网站给出的定义是,英雄是指可以在路由(页面)之间“飞”的小部件。FlyHero从一个路由到另一种路由。

  英雄动画代码应具有以下结构:

  1.定义一个名为“ Yuan Hero”的起始英雄小部件。英雄指定其图形(通常是图片)和识别标记,并且位于当前显示的源源图中,由源路由定义。

  2.定义一个最终英雄小部件,称为“目标英雄”。此英雄还指定了其图形,并且与Yuan Hero相同的标签。重要的是,两个英雄窗口小部件都使用相同的标签创建,通常是基础数据的对象为了获得最佳结果,英雄应该拥有几乎相同的小部件树。

  3.创建一个包含目标英雄的路由。目标路由定义动画末端的小部件树。

  4.将目标路由触发到堆栈中,以通过导航器触发动画。NavigatorPusp and pop -up操作将与每对英雄匹配,并在源路由和目标路由中使用匹配标签来触发英雄动画。

  5.从起点到英雄边界的终点的绘制计算,以制作动画过程(生成每个帧大小和位置),并在叠加层中执行动画。

  您可以根据要求和定义直接编码,这很简单:

  第一个是第一个接口:

  第二个接口

  有一些场景,例如单个数字图片需要过渡动画。双重数不需要。因此,如何处理它,颤抖中的解决方案是Heromode。在将Heromode组件放在英雄嵌套的Heromode组件中后,启用属性可以通过错误,英雄动画将失败。

  请注意,这里的标签必须与第一个接口英雄中的标签一致

  通常,这种效果非常简单,但是实际项目中呈现的用户体验将非常好!

  代码地址