pushDragToPopRoute function
Future
pushDragToPopRoute({
- required BuildContext context,
- required Widget child,
- 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> pushDragToPopRoute({
required BuildContext context,
required Widget child,
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.easeInExpo,
),
child: child,
);
return FadeTransition(opacity: animation, child: child);
},
pageBuilder: (_, __, ___) => DragToPop(child: child),
maintainState: maintainState,
barrierColor: barrierColor,
barrierLabel: barrierLabel,
barrierDismissible: barrierDismissible,
settings: settings,
),
);