show method
void
show(
- BuildContext callerContext,
- Snackbar snackbar, [
- Duration duration = const Duration(seconds: 5)
Shows snackbar for duration, replacing any currently visible one.
Implementation
void show(
BuildContext callerContext,
Snackbar snackbar, [
Duration duration = const Duration(seconds: 5),
]) {
_hideTimer?.cancel();
_hideTimer = null;
_entry?.remove();
_entry?.dispose();
_entry = null;
_controller.value = 0;
_pendingDuration = duration;
final themeData = Theme.of(callerContext);
_entry = OverlayEntry(
builder:
(_) => Theme(
data: themeData,
child: Align(
alignment: Alignment.bottomRight,
child: FadeTransition(
opacity: _animation,
child: ScaleTransition(
scale: Tween<double>(begin: 0.9, end: 1).animate(_animation),
child: SafeArea(
top: false,
child: Padding(
padding: const EdgeInsets.all(Spacing.s4),
child: snackbar,
),
),
),
),
),
),
);
Overlay.of(context).insert(_entry!);
unawaited(_controller.forward());
}