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应用中的各种动画效果。