showContextMenu<T> function

Future<T?> showContextMenu<T>(
  1. BuildContext context, {
  2. required ContextMenu contextMenu,
  3. RouteSettings? routeSettings,
  4. bool? opaque,
  5. bool? barrierDismissible,
  6. Color? barrierColor,
  7. String? barrierLabel,
  8. Duration? transitionDuration,
  9. Duration? reverseTransitionDuration,
  10. RouteTransitionsBuilder? transitionsBuilder,
  11. bool allowSnapshotting = true,
  12. bool maintainState = false,
})

Shows the root context menu popup.

Implementation

Future<T?> showContextMenu<T>(
  BuildContext context, {
  required ContextMenu contextMenu,
  RouteSettings? routeSettings,
  bool? opaque,
  bool? barrierDismissible,
  Color? barrierColor,
  String? barrierLabel,
  Duration? transitionDuration,
  Duration? reverseTransitionDuration,
  RouteTransitionsBuilder? transitionsBuilder,
  bool allowSnapshotting = true,
  bool maintainState = false,
}) async {
  final menuState = ContextMenuState(menu: contextMenu);
  return await Navigator.push<T>(
    context,
    PageRouteBuilder<T>(
      pageBuilder: (context, animation, secondaryAnimation) {
        return Stack(
          children: [ContextMenuWidget(menuState: menuState)],
        );
      },
      settings: routeSettings ?? const RouteSettings(name: "context-menu"),
      fullscreenDialog: true,
      barrierDismissible: barrierDismissible ?? true,
      opaque: opaque ?? false,
      transitionDuration: transitionDuration ?? Duration.zero,
      reverseTransitionDuration: reverseTransitionDuration ?? Duration.zero,
      barrierColor: barrierColor,
      barrierLabel: barrierLabel,
      transitionsBuilder: transitionsBuilder ?? _defaultTransitionsBuilder,
      allowSnapshotting: allowSnapshotting,
      maintainState: maintainState,
    ),
  );
}