show method

void show(
  1. BuildContext context
)

This method will create an overlay for your snack bar and insert it to the overlay entries of navigator.

Implementation

void show(BuildContext context) {
  final overlay = Navigator.of(context).overlay!;

  info = _SnackBarInfo(
    key: GlobalKey<RawAnimatedSnackBarState>(),
    createdAt: DateTime.now(),
  );

  info.entry = OverlayEntry(
    builder: (_) => RawAnimatedSnackBar(
      key: info.key,
      getInitialDy: () => snackBarStrategy.computeDy(_snackBars, this),
      duration: duration,
      onRemoved: remove,
      child: builder.call(context),
      desktopSnackBarPosition: desktopSnackBarPosition,
      mobileSnackBarPosition: mobileSnackBarPosition,
      mobilePositionSettings: mobilePositionSettings,
      animationDuration: animationDuration,
      animationCurve: animationCurve,
    ),
  );

  _snackBars.add(this);

  WidgetsBinding.instance.addPostFrameCallback(
    (_) => overlay.insert(info.entry),
  );

  _snackBars = snackBarStrategy.onAdd(_snackBars, this);
}