Flutter Animation 动画

本文介绍了Flutter中动画的核心类Animation及其子类AnimationController,强调了Tween在处理不同类型动画值中的作用。AnimationController用于控制动画的播放,CurvedAnimation结合Curve调整动画速率,Tween则用于创建不同类型的动画过渡,如颜色、尺寸等。文章还提到了AnimatedWidget和AnimatedBuilder以优化性能并减少不必要的构建。

前言 :

在Flutter 中,做动画离不开这么一个类,那就是

Animation

这个类如往常一样,也是一个抽象类。

abstract class Animation<T> extends Listenable implements ValueListenable<T>

整个animation.dart 文件只有两百多行代码,其中包含了大量的注释。

这句话应该就可以看出Tween 的重要性了。

一 Animation 

了解一下这个类中的方法吧。

1 addListener

每当动画的值改变的时候,动画就会通知所有通过addListener 添加的监听器

2 addStatusListener

简而言之,就是动画的状态发生改变的时候,会通知所有通过addStatusListener 添加的监听器 。

  • 当动画的状态发生变化时,会通知所有通过 addStatusListener 添加的监听器。

  • 通常情况下,动画会从 dismissed 状态开始,表示它处于变化区间的开始点。

  • 举例来说,从 0.0 到 1.0 的动画在 dismissed 状态时的值应该是 0.0。

  • 动画进行的下一状态可能是 forward(比如从 0.0 到 1.0)或者 reverse(比如从 1.0 到 0.0)。

  • 最终,如果动画到达其区间的结束点(比如 1.0),则动画会变成 completed 状态。

3 removeListener

4 removeStatusListener

二  AnimationController

AnimationController 这个是继承Anamation的,里面有几个属性比较重要


值得注意的是 vsync 参数是必传的,Flutter的渲染闭环,每次渲染一帧画面之前都需要一个vsync信号,所以需要将SingleTickerProviderStateMixin 混入到State 类中才能初始化AnimationController

  AnimationController({
    double? value,
    this.duration,
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值