前言
上一篇我们介绍了 Animation
和 AnimationController
的使用,这是最基本的动画构建类。但是,如果我们想构建一个可复用的动画组件,通过外部参数来控制其动画效果的时候,上一篇的方法就不太合适了。在 Flutter 中提供了 AnimatedWidget
组件用于构建可复用的动画组件。本篇我们用 AnimatedWidget
来实现组件的3D 旋转效果,如下图所示。
AnimatedWidget 简介
AnimatedWidget
是一个抽象的 StatefulWidget
, 构造方法如下所示。
const AnimatedWidget({
Key? key,
required this.listenable,
}) : assert(listenable != null),
super(key: key);
主要在于接收一个 listenable
参数,通常会是 Animation
对象。在 AnimatedWidget
内部的_AnimatedState
类中,会添加该对象变化监听回调,进而刷新界面。
class _AnimatedSta