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方法可以帮助我们监听动画数值和状态的变化,从而实现更复杂的交互效果。