createRoute method

Route createRoute (
  1. {Widget destination,
  2. Curve curve: Curves.ease,
  3. AnimType animType: AnimType.slideStart,
  4. int duration: DEFAULT_TRANSITION_DURATION}
)

Implementation

static Route createRoute({Widget destination, Curve curve = Curves.ease, AnimType animType = AnimType.slideStart, int duration = DEFAULT_TRANSITION_DURATION} ){
  return PageRouteBuilder(
      pageBuilder: (context, animation, anotherAnimation) {
        return destination;
      },
      transitionDuration: Duration(milliseconds: duration),
      transitionsBuilder:
          (context, animation, anotherAnimation, child) {
        animation = CurvedAnimation(
            curve: curve, parent: animation);

        switch(animType){
          case AnimType.fade:
            return Align(
              child: FadeTransition(
                opacity: animation,
                child: child,
              ),
            );
          case AnimType.slideBottom:
            return SlideTransition(
              position: Tween(
                  begin: Offset(0.0, 1.0),
                  end: Offset(0.0, 0.0))
                  .animate(animation),
              child: child,
            );
            break;
          case AnimType.slideStart:
            return SlideTransition(
              position: Tween(
                  begin: Offset(1.0, 0.0),
                  end: Offset(0.0, 0.0))
                  .animate(animation),
              child: child,
            );
            break;
          case AnimType.size:
            return Align(
              child: SizeTransition(
                sizeFactor: animation,
                child: child,
                axisAlignment: 0.0,
              ),
            );
            break;
          case AnimType.rotate:
            return RotationTransition(
              turns: animation,
              child: child,
            );
          default:
            return SlideTransition(
              position: Tween(
                  begin: Offset(1.0, 0.0),
                  end: Offset(0.0, 0.0))
                  .animate(animation),
              child: child,
            );

        }
      });
}