CustomPageRoute<T> constructor

CustomPageRoute<T>({
  1. required Widget page,
  2. TransitionStyle transitionStyle = TransitionStyle.slide,
  3. Offset beginOffset = const Offset(1.0, 0.0),
  4. bool zoomIn = false,
  5. Duration duration = const Duration(milliseconds: 300),
})

Implementation

CustomPageRoute({
  required this.page,
  this.transitionStyle = TransitionStyle.slide, // Default is Slide
  this.beginOffset = const Offset(1.0, 0.0), // Slide from right by default
  this.zoomIn = false, // Zoom in by default
  this.duration = const Duration(milliseconds: 300), // Transition duration
}) : super(
        pageBuilder: (context, animation, secondaryAnimation) => page,
        transitionDuration: duration,
        transitionsBuilder: (context, animation, secondaryAnimation, child) {
          switch (transitionStyle) {
            case TransitionStyle.slide:
              return _buildSlideTransition(animation, child);

            case TransitionStyle.bottomSheet:
              return _buildBottomSheetTransition(animation, child);

            case TransitionStyle.zoomOut:
              return _buildZoomOutTransition(animation, child);

            default:
              return _buildSlideTransition(
                  animation, child); // Default to Slide
          }
        },
      );