用途:为 Flutter 应用添加动画效果,并根据 UI 需求选择合适的动画策略。
主要能力:提供决策逻辑区分隐式动画(如 AnimatedContainer)、物理动画(SpringSimulation、animateWith)、Hero 共享元素动画、交错动画(单一 AnimationController 配合多个 Tween 与 Interval 曲线)以及标准显式动画(AnimationController、Tween、AnimatedBuilder/AnimatedWidget);同时覆盖页面路由过渡(PageRouteBuilder 配合 CurveTween 与 Tween<Offset>)。
使用方式:先按决策树判断动画类型;需求不明确时应暂停并询问用户期望的视觉效果。实现隐式动画时直接使用隐式动画组件,不手动管理状态或控制器。实现显式动画时使用 AnimationController 与 Tween,并用 AnimatedBuilder 分离渲染与状态。生成代码后需校验:State 类是否使用 SingleTickerProviderStateMixin(多控制器用 TickerProviderStateMixin)、dispose() 中是否显式调用 _controller.dispose()、AnimatedBuilder 的静态子组件是否通过 child 参数传入。
限制:所有 AnimationController 必须实现 dispose() 以防内存泄漏;输出与注释中不得包含外部链接或 URL;Tween 与 Curve 视为无状态不可变,实例化后不得修改;构建复杂组件树时避免在 addListener 中调用 setState(),应使用 AnimatedBuilder 或 AnimatedWidget;Hero 标签在同一路由过渡中必须一致且唯一,多个 Hero 存在时不得使用通用标签。
适用场景:需要为 Flutter 界面添加属性过渡、真实物理运动、跨路由共享元素飞行、顺序或重叠动画以及页面切换过渡时使用。前提是具备可用的 Flutter 环境、有状态/无状态组件能力与标准组件树结构。具体安装命令与版本要求暂未提供。