ScaleRotateRoute constructor

ScaleRotateRoute(
  1. {required Widget page,
  2. RouteSettings? settings,
  3. Duration? transitionDuration,
  4. Duration? reverseTransitionDuration,
  5. bool? opaque,
  6. bool? barrierDismissible,
  7. Color? barrierColor,
  8. String? barrierLabel,
  9. bool? maintainState}
)

Implementation

ScaleRotateRoute({
  required this.page,
  RouteSettings? settings,
  Duration? transitionDuration,
  Duration? reverseTransitionDuration,
  bool? opaque,
  bool? barrierDismissible,
  Color? barrierColor,
  String? barrierLabel,
  bool? maintainState,
}) : super(
        settings: settings,
        transitionDuration:
            transitionDuration ?? const Duration(milliseconds: 300),
        reverseTransitionDuration:
            reverseTransitionDuration ?? const Duration(milliseconds: 300),
        opaque: opaque ?? true,
        barrierDismissible: barrierDismissible ?? false,
        barrierColor: barrierColor,
        barrierLabel: barrierLabel,
        maintainState: maintainState ?? true,
        pageBuilder: (
          BuildContext context,
          Animation<double> animation,
          Animation<double> secondaryAnimation,
        ) =>
            page,
        transitionsBuilder: (
          BuildContext context,
          Animation<double> animation,
          Animation<double> secondaryAnimation,
          Widget child,
        ) =>
            ScaleTransition(
          scale: Tween<double>(
            begin: 0.0,
            end: 1.0,
          ).animate(
            CurvedAnimation(
              parent: animation,
              curve: Curves.fastOutSlowIn,
            ),
          ),
          child: RotationTransition(
            turns: Tween<double>(
              begin: 0.0,
              end: 1.0,
            ).animate(
              CurvedAnimation(
                parent: animation,
                curve: Curves.linear,
              ),
            ),
            child: child,
          ),
        ),
      );