瞒天过海 —— 教你更换Flutter Hero 动画效果过程中的组件

前言

继续 Hero 组件的介绍,本篇来介绍 Hero 组件的另一个属性 flightShuttleBuilder 。这个属性用于设置飞行过程中的组件。默认的话 Hero 组件在飞行过程中是使用源页面的 Hero 子组件。有了flightShuttleBuilder,我们就可以在行过程中可以更换组件。

flightShuttleBuilder 定义

flightShuttleBuilder 是一个返回飞行过程中的方法,定义如下:

typedef HeroFlightShuttleBuilder = Widget Function(
  BuildContext flightContext,
  Animation<double> animation,
  HeroFlightDirection flightDirection,
  BuildContext fromHeroContext,
  BuildContext toHeroContext,
);

其中 flightDirection 是一个枚举,用于区分是 push 还是 popanimation 原以为会在动画过程中变化,但是 debug 的时候发现只有一个起始值。三个 context 是在需要的时候可以使用,一般用不到。我们可以通过flightDirection 来定义 push 过程和 pop

猜你喜欢

转载自blog.csdn.net/shuijian00/article/details/125106157