怎么做yoyo动画扑?

Tre*_*ree 5 dart flutter

我知道有repeat()方法,AnimationController但它总是从一开始就开始.

有没有内置的方法来做一个前进和一个反向动画,并重复这一点?

谢谢

Rém*_*let 15

您可以使用侦听动画的状态addStatusListener.并在动画结束时反转它.

final AnimationController c;
...
c.addStatusListener((status) {
  if (status == AnimationStatus.completed) {
    c.reverse();
  }
  else if (status == AnimationStatus.dismissed) {
    c.forward();
  }
});
Run Code Online (Sandbox Code Playgroud)


Vin*_*rga 7

repeat方法支持reverse可选的named参数,因此您可以编写

animationController.repeat(reverse: true);
Run Code Online (Sandbox Code Playgroud)

这是现代的,简单的解决方案。