
Flutter 跨端界面开发与动画性能优化这些反模式最好早点避开动画每一帧都依赖高频变化购物车、账户等业务状态通常不是。把两类状态放在同一个全局监听里容易让无关 Widget 跟着反复 build。让动画状态留在组件附近优先使用AnimationController、ValueNotifier或局部状态驱动动画区域。业务状态只传入动画需要的稳定参数。class PulseIcon extends StatefulWidget { const PulseIcon({super.key}); override StatePulseIcon createState() _PulseIconState(); } class _PulseIconState extends StatePulseIcon with SingleTickerProviderStateMixin { late final AnimationController controller AnimationController(vsync: this, duration: const Duration(milliseconds: 180)); override void dispose() { controller.dispose(); super.dispose(); } override Widget build(BuildContext context) ScaleTransition(scale: controller, child: const Icon(Icons.favorite)); }先确认再优化DevTools 的 rebuild 信息用于定位不是要求所有重建归零。重建成本低时过度拆分反而让代码难读。把典型滚动和触发场景录下来比较改动前后是否减少了真正的慢帧。动画应像一笔小的高光跟着它变的只该是附近的颜色。