zoom static method

PageRouteBuilder zoom({
  1. required Widget page,
  2. Duration duration = const Duration(milliseconds: 350),
})
  1. Zoom / Scale transition route

Implementation

static PageRouteBuilder zoom(
    {required Widget page,
    Duration duration = const Duration(milliseconds: 350)}) {
  return PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => page,
    transitionDuration: duration,
    reverseTransitionDuration: duration,
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      final tween = Tween<double>(begin: 0.85, end: 1.0)
          .chain(CurveTween(curve: MotionCurves.magneticSpring));
      return ScaleTransition(
        scale: animation.drive(tween),
        child: FadeTransition(
          opacity: animation,
          child: child,
        ),
      );
    },
  );
}