Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何在颤振中制作yoyo动画?_Dart_Flutter - Fatal编程技术网

Dart 如何在颤振中制作yoyo动画?

Dart 如何在颤振中制作yoyo动画?,dart,flutter,Dart,Flutter,我知道AnimationController上有repeat()方法,但它总是从一开始就开始 是否有一种内置的方法来执行一个正向和一个反向动画,并重复该操作 谢谢您可以使用addStatusListener收听动画的状态。在动画结束时,将其反转 final AnimationController c; ... c.addStatusListener((status) { if (status == AnimationStatus.completed) { c.reverse();

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

是否有一种内置的方法来执行一个正向和一个反向动画,并重复该操作


谢谢

您可以使用
addStatusListener
收听动画的状态。在动画结束时,将其反转

final AnimationController c;
...
c.addStatusListener((status) {
  if (status == AnimationStatus.completed) {
    c.reverse();
  }
  else if (status == AnimationStatus.dismissed) {
    c.forward();
  }
});
该方法支持
reverse
可选命名参数,因此您可以编写

animationController.repeat(reverse: true);

这是一个现代、简单的解决方案。

谢谢。最后我就是这样做的。毫无疑问,颤振框架在不断发展,因此一些难以实现且需要繁琐代码的东西(参见Remi的答案,这是前一段时间唯一的解决方案)现在只是一个命名参数。我如何重复一遍我建议你在PembaTamang打开另一个问题,一种解决方案是添加一个状态监听器并手动计算状态变化(参见Remi的答案以获取灵感),但可能有一种更优雅的方法来实现这一点,因此我建议你打开一个新问题我通过将两个动画一个向前一个反向链接来实现。无论如何,谢谢你的回复。