gpt4 book ai didi

flutter - 是否有通用类型的 AnimationController?如果不是,为什么?

转载 作者:IT王子 更新时间:2023-10-29 07:12:25 24 4
gpt4 key购买 nike

这里是 Flutter 新手。我将 Tween 与 AnimationController 一起使用。我正在尝试将 animateTo() 方法与 Offset 类型的目标一起使用。这可能吗?

文档说:

animateTo(double target, { Duration duration, Curve curve: Curves.linear }) → TickerFuture

Drives the animation from its current value to target

动画 Controller :

_controller = AnimationController(
duration: const Duration(milliseconds: 500),
vsync: this,
);

动画到():

_controller.animateTo(Offset(0,0))

上面一行是不正确的:

The argument type 'Offset' can't be assigned to the parameter type 'double'.dart(argument_type_not_assignable)

AnimationController 有泛型吗?如果不是,为什么?我知道我可以使用 Tween<Offset>(begin:.., end:..).animate(_controller) .但看起来 animateTo() 和类似的 AnimationController 方法只适用于 double 类型的目标。这看起来令人困惑。

最佳答案

没有。 AnimationController 仅处理 double

AnimationController 使用的doubleTween 使用的double 具有不同的含义。

AnimationController只是动画的进度,而Tween可能经过很多层变换后输出一个值。

因此,不仅很难将转换后的值转换回它所代表的进度,而且还存在局限性:

曲线。如果 AnimationController 应该处理任何可补间对象,那么它也会隐式支持曲线。

问题是,我们可以有这样的曲线:

enter image description here

但这引发了一个问题。正如我们在前面的 gif 中看到的那样,经过曲线转换后,我们可以多次发出相同的值。

在那种情况下,如果 Controller 可以多次发射 X,animateTo(X) 需要的行为是什么?

这没有意义。因此,AnimationController 仅使用线性 float 值。如果我们想要更复杂的行为,我们必须使用不同的对象。

关于flutter - 是否有通用类型的 AnimationController?如果不是,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54908824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com