1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 一、Flutter动画主要分为: 1.1 隐式动画: -通过直接改变 Widget 的属性值,Flutter框架会自动在旧值和新值之间平滑地过渡动画。 -例如,改变 Container 的 color、width 等属性时,可以使用AnimatedContainer来实现颜色或尺寸的平滑过渡。
1.2 显式动画: 需要手动控制动画的整个过程,包括动画的起始值、结束值、持续时间、曲线等。 这通常涉及到 AnimationController 和各种 Animation 对象。
二、如何使用:
2.1 AnimatedContainer: -隐式动画的典型代表。 -只需要将普通的 Container 替换为 AnimatedContainer,并在其属性发生变化时,Flutter会自动进行动画过渡。 -可以通过 duration 属性设置动画时长,curve 属性设置动画曲线。
2.2 Hero: -用于在不同路由之间创建一个Widget的无缝过渡动画。 -只需要在两个路由中的相同Widget上包裹 Hero Widget,并赋予它们相同的 tag。 -Flutter会自动处理它们之间的缩放和移动动画。
2.3 AnimationController: -显式动画的核心。 -它用于管理动画的状态(开始、停止、前进、后退)和生成动画的值(通常在 0.0 到 1.0 之间)。 -需要TickerProvider(通常是SingleTickerProviderStateMixin或TickerProviderStateMixin)来驱动动画。
2.4 Tween: -用于定义动画的起始值和结束值之间的插值。 -它不控制动画的播放,而是根据 AnimationController 生成的值,计算出动画在每个时间点对应的实际属性值。
|