pushOverscrollRoute function
Future
pushOverscrollRoute({
- required BuildContext context,
- required Widget child,
- ScrollToPopOption scrollToPopOption = ScrollToPopOption.start,
- DragToPopDirection? dragToPopDirection,
- bool fullscreenDialog = false,
- RouteSettings? settings,
- Duration transitionDuration = const Duration(milliseconds: 250),
- Duration reverseTransitionDuration = const Duration(milliseconds: 250),
- Color? barrierColor,
- String? barrierLabel,
- bool barrierDismissible = false,
- bool maintainState = true,
Implementation
Future<dynamic> pushOverscrollRoute({
required BuildContext context,
required Widget child,
ScrollToPopOption scrollToPopOption = ScrollToPopOption.start,
DragToPopDirection? dragToPopDirection,
bool fullscreenDialog = false,
RouteSettings? settings,
Duration transitionDuration = const Duration(milliseconds: 250),
Duration reverseTransitionDuration = const Duration(milliseconds: 250),
Color? barrierColor,
String? barrierLabel,
bool barrierDismissible = false,
bool maintainState = true,
}) async =>
await Navigator.of(context).push(
PageRouteBuilder(
transitionDuration: transitionDuration,
reverseTransitionDuration: reverseTransitionDuration,
fullscreenDialog: fullscreenDialog,
opaque: false,
transitionsBuilder: (
BuildContext context,
Animation<double> animation,
_,
Widget child,
) {
if (animation.status == AnimationStatus.reverse ||
animation.status == AnimationStatus.dismissed)
return FadeTransition(
opacity: CurvedAnimation(
parent: animation,
curve: Curves.easeInCirc,
),
child: child,
);
return FadeTransition(opacity: animation, child: child);
},
pageBuilder: (_, __, ___) => OverscrollPop(
dragToPopDirection: dragToPopDirection,
scrollToPopOption: scrollToPopOption,
child: child,
),
maintainState: maintainState,
barrierColor: barrierColor,
barrierLabel: barrierLabel,
barrierDismissible: barrierDismissible,
settings: settings,
),
);