Animation类

1. 简介

  • Animation类是Flutter中用来创建动画效果的核心类之一。
  • 它通过插值器(interpolators)将动画的数值茹器映射到动画的可视输出上。
  • Animation类本身并不会直接操作UI,而是通过与[beused::AnimationController]、[beused::Tween]等类结合使用来实现动画效果。

2. 常用属性和方法

  • value: 当前动画的数值。
  • status: 动画的状态,包括dismissed、forward、reverse和completed。
  • addListener(): 添加监听器,在每次动画数值发生变化时调用。
  • addStatusListener(): 添加状态监听器,在动画状态发生变化时调用。

3. 示例代码

AnimationController _controller;
Animation<double> _animation;
 
void initState() {
  super.initState();
  
  _controller = AnimationController(
    duration: Duration(seconds: 1),
    vsync: this,
  );
  
  _animation = Tween<double>(
    begin: 0,
    end: 1,
  ).animate(_controller);
  
  _controller.forward();
}
 
@override
Widget build(BuildContext context) {
  return AnimatedBuilder(
    animation: _animation,
    builder: (context, child) {
      return Transform.scale(
        scale: _animation.value,
        child: Container(
          color: Colors.blue,
          width: 100,
          height: 100,
        ),
      );
    },
  );
}

4. 注意事项

  • 在使用Animation类时,需要注意将其与AnimationController进行配合使用,并在适当的时机启动、停止或反转控制器以控制动画效果。
  • 使用addListener和addStatusListener方法可以帮助我们监听动画数值和状态的变化,从而实现更复杂的交互效果。