pushNamedWithAnimation method

dynamic pushNamedWithAnimation({
  1. required String routeName,
  2. dynamic argument,
  3. RoutePageAnimation routePageAnimation = AirouteTransition.Slide,
  4. Duration duration = const Duration(milliseconds: 500),
})

Push with animation.

Implementation

pushNamedWithAnimation({
  required String routeName,
  dynamic argument,
  RoutePageAnimation routePageAnimation = AirouteTransition.Slide,
  Duration duration = const Duration(milliseconds: 500),
}) {
  return navigator?.push(
    PageRouteBuilder(
      transitionDuration: duration,
      settings: RouteSettings(
        name: routeName,
        arguments: argument,
      ),
      pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) {
        //WidgetBuilder
        AirouteBuilder airouteBuilder = _route[routeName]!;
        Widget widget = airouteBuilder();
        if (widget is AirArgumentReceiver) {
          AirArgumentReceiver argumentReceiver = widget as AirArgumentReceiver;
          argumentReceiver.receive(
            AirArgument(
              argument: argument,
              routeName: routeName,
            ),
          );
        }
        //Route page animation
        return routePageAnimation(
          context,
          animation,
          secondaryAnimation,
          widget,
        );
      },
    ),
  );
}