AnimationController

1. 概述

AnimationController是Flutter中用于控制动画的类,可以控制动画的播放速度、方向等属性。它是一个抽象类,通常使用其子类AnimationController来创建动画控制器。

2. 创建AnimationController

AnimationController _controller = AnimationController(
  duration: Duration(seconds: 1),
  vsync: this,
);
  • duration:动画持续的时间。
  • vsync:垂直同步对象,通常为当前State对象。

3. 控制动画

  • 播放动画:
_controller.forward();
  • 反向播放动画:
_controller.reverse();
  • 停止动画:
_controller.stop();

4. 监听动画状态

可以通过添加监听器来监听动画的状态变化:

_controller.addListener(() {
  // 动画状态变化时执行的操作
});

5. 添加动画曲线(Curve)

可以通过CurvedAnimation来为动画添加曲线效果:

CurvedAnimation _curvedAnimation = CurvedAnimation(
  parent: _controller,
  curve: Curves.easeIn,
);

6. 销毁AnimationController

在State对象销毁时需要手动销毁AnimationController以避免内存泄漏:

@override
void dispose() {
  _controller.dispose();
  super.dispose();
}

通过使用AnimationController,我们可以更加灵活地控制Flutter应用中的各种动画效果。