不同动画的持续时间不同

时间:2019-01-17 16:52:04

标签: dart flutter

代码

// Member variables
AnimationController _controller;
Animation _animation1;
Animation _animation2;

@override
void initState() {
  super.initState();
  _controller = AnimationController(
    vsync: this,
    duration: Duration(milliseconds: 400),
  );

  _animation1 = Tween<double>(begin: 0.2, end: 1).animate(_controller);
  _animation2 = Tween<double>(begin: 0.4, end: 1).animate(_controller);
}

_animation1_animation2的持续时间均为400毫秒。但是,我想更改_animation2的持续时间。我如何做而不创建新的AnimationController

1 个答案:

答案 0 :(得分:0)

Rémi建议的

Interval是解决方案。

_animation1 = Tween<double>(begin: 0.2, end: 1).animate(CurvedAnimation(
  parent: _controller,
  curve: Interval(0.5, 1.0),
));
_animation2 = Tween<double>(begin: 0.2, end: 1).animate(CurvedAnimation(
  parent: _controller,
  curve: Interval(0.8, 1.0),
));