flutter 如何使动画值始终从0运行到1

n53p2ov0  于 2022-11-25  发布在  Flutter
关注(0)|答案(2)|浏览(161)

我正在尝试创建一个从0到1的动画补间:

final Tween<double> _tween = Tween(begin: 0, end: 1);

late AnimationController _controller;

late Animation<double> _animation;

出于某种原因,有时我需要调用_controller.reverse()_controller.forward(),而我的animation.value从0到1,然后从1到0。
如何使animation.value始终从0运行到1?

eh57zj3b

eh57zj3b1#

你可以用_controller.forward(from: 0)来实现,或者你可以创建一个函数来获取动画值,如下所示:

double getAnimationValue(Animation animation) {
    final value = animation.value!;

    return animation.status == AnimationStatus.reverse ? 1 - value : value;
}
jtjikinw

jtjikinw2#

您可以使用.repeat()

_controller.repeat();

如果你喜欢边倒边重复

_controller.repeat(reverse: true);

同样,仅仅为了获得关于初始状态的信息,您可以使用

_controller.reset();

便可启动

_controller.forward();

相关问题