toast static method
void
toast({
- required String message,
- String? title,
- UToastType type = UToastType.neutral,
- IconData? icon,
- UToastPosition position = UToastPosition.bottom,
- Duration duration = const Duration(seconds: 3),
- Duration animationDuration = const Duration(milliseconds: 300),
- Color? backgroundColor,
- Color? foregroundColor,
- EdgeInsets margin = const EdgeInsets.all(24),
- double borderRadius = 12,
- double elevation = 6,
- VoidCallback? onTap,
- VoidCallback? onDismiss,
Implementation
static void toast({
required String message,
String? title,
UToastType type = UToastType.neutral,
IconData? icon,
UToastPosition position = UToastPosition.bottom,
Duration duration = const Duration(seconds: 3),
Duration animationDuration = const Duration(milliseconds: 300),
Color? backgroundColor,
Color? foregroundColor,
EdgeInsets margin = const EdgeInsets.all(24),
double borderRadius = 12,
double elevation = 6,
VoidCallback? onTap,
VoidCallback? onDismiss,
}) {
if (message.isNullOrEmpty()) return;
final BuildContext ctx = navigatorKey.currentContext!;
clearToast();
final Color background = backgroundColor ?? (type == UToastType.neutral ? _scheme.inverseSurface : _backgroundFor(type));
final Color foreground = foregroundColor ?? (type == UToastType.neutral ? _scheme.onInverseSurface : _foregroundFor(type));
final IconData? resolvedIcon = icon ?? _iconFor(type);
final OverlayEntry entry = OverlayEntry(
builder: (BuildContext context) =>
_UToastCard(
message: message,
title: title,
icon: resolvedIcon,
background: background,
foreground: foreground,
position: position,
margin: margin,
borderRadius: borderRadius,
elevation: elevation,
animationDuration: animationDuration,
onTap: onTap,
),
);
_toastEntry = entry;
Overlay.of(ctx).insert(entry);
if (duration != Duration.zero) {
Future<void>.delayed(duration, () {
clearToast();
onDismiss?.call();
});
}
}