在 Flutter 中,路由动画是实现页面过渡效果的核心技术。通过动画,可以让应用在导航时更加流畅自然,提升用户体验。以下是关键知识点梳理:

1. 基础导航与动画

Flutter 的 Navigator 提供了内置的动画支持:

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => SecondPage()),
);
  • 默认使用 FadeTransition 实现淡入淡出效果
  • 可通过 PageRouteBuilder 自定义动画曲线
  • 📌 查看完整示例

2. 常见动画类型

动画类型 实现方式 特点
淡入淡出 FadeTransition 简单易用
平移滑动 SlideTransition 适合列表导航
缩放动画 ScaleTransition 突出页面焦点
自定义动画 PageRouteBuilder 完全控制过渡效果

3. 动画参数设置

PageRouteBuilder(
  pageBuilder: (context, animation, secondaryAnimation) => SecondPage(),
  transitionsBuilder: (context, animation, secondaryAnimation, child) {
    return FadeTransition(opacity: animation.drive(Tween<double>(begin: 0, end: 1)), child: child);
  },
)
  • 使用 Tween 定义动画参数范围
  • animation 控制当前页面变化
  • secondaryAnimation 控制返回页面变化

4. 高级技巧

  • 通过 Hero 实现跨页面动画联动
  • 使用 AnimatedSwitcher 切换页面状态
  • 结合 PageRoutetransitionDuration 调整动画时长
  • 📌 探索更复杂的动画案例

Flutter_Routing_Animation

图片展示不同路由动画效果对比

5. 扩展阅读

通过合理运用路由动画,可以让应用的页面切换如同魔法般流畅。建议从简单的 FadeTransition 开始实践,逐步尝试更复杂的自定义动画方案。