getRoute<T, W extends Widget> method

  1. @override
PageRoute<T> getRoute<T, W extends Widget>(
  1. SimpleWidgetBuilder<W> builder
)
override

Returns the typed route.

Implementation

@override
PageRoute<T> getRoute<T, W extends Widget>(
  SimpleWidgetBuilder<W> builder,
) {
  return PageRouteBuilder(
    pageBuilder: (context, a1, a2) => builder(),
    transitionsBuilder: (context, a1, a2, child) {
      return SlideTransition(
        position: Tween<Offset>(
          begin: switch (direction) {
            SlideDirection.rightToLeft => const Offset(1.0, 0.0),
            SlideDirection.leftToRight => const Offset(-1.0, 0.0),
            SlideDirection.topToBottom => const Offset(0.0, -1.0),
            SlideDirection.bottomToTop => const Offset(0.0, 1.0),
          },
          end: Offset.zero,
        ).animate(
          CurvedAnimation(
            parent: a1,
            curve: curve,
          ),
        ),
        child: child,
      );
    },
    settings: RouteSettings(name: W.toString()),
    transitionDuration: duration,
    reverseTransitionDuration: duration,
  );
}