showGlassActionSheet<T> function
Future<T?>
showGlassActionSheet<T>({
- required BuildContext context,
- String? title,
- String? message,
- required List<
GlassActionSheetAction> actions, - String cancelLabel = 'Cancel',
- bool showCancelButton = true,
- bool barrierDismissible = true,
- LiquidGlassSettings? settings,
- GlassQuality? quality,
A glass morphism action sheet following iOS 26 liquid glass design.
This action sheet provides an iOS-style bottom action sheet with:
- iOS 26 liquid glass backdrop effect
- Bottom-anchored action list
- Destructive action styling (red text/icon)
- Cancel button always at bottom with separator
- Tap outside to dismiss
- Slide-up animation
- Optional title and message
Usage
Basic Action Sheet
showGlassActionSheet(
context: context,
title: 'Delete Photo?',
message: 'This action cannot be undone',
actions: [
GlassActionSheetAction(
label: 'Delete',
style: GlassActionSheetStyle.destructive,
onPressed: () {
// Delete logic
Navigator.pop(context);
},
),
],
);
Multiple Actions
showGlassActionSheet(
context: context,
title: 'Choose Action',
actions: [
GlassActionSheetAction(
label: 'Save to Photos',
icon: Icon(CupertinoIcons.photo),
onPressed: () => save(),
),
GlassActionSheetAction(
label: 'Share',
icon: Icon(CupertinoIcons.share),
onPressed: () => share(),
),
GlassActionSheetAction(
label: 'Delete',
icon: Icon(CupertinoIcons.delete),
style: GlassActionSheetStyle.destructive,
onPressed: () => delete(),
),
],
);
Custom Cancel Label
showGlassActionSheet(
context: context,
title: 'Select Option',
actions: [...],
cancelLabel: 'Dismiss', // Custom cancel button text
);
No Cancel Button
showGlassActionSheet(
context: context,
title: 'Select Option',
actions: [...],
showCancelButton: false,
);
iOS 26 Design Principles
- Bottom-anchored: Always slides up from bottom
- Grouped layout: Actions in one card, cancel button separated
- Destructive styling: Red text for dangerous actions
- Glass backdrop: Liquid glass effect on action cards
- Modal dismissal: Tap outside or cancel to dismiss
- Safe area aware: Respects bottom safe area
Differences from GlassSheet
- GlassActionSheet: Predefined action list (like iOS UIAlertController)
- GlassSheet: Custom content (like iOS UISheetPresentationController)
Use showGlassActionSheet when you need a simple action picker. Use GlassSheet when you need custom content or forms.
Implementation
Future<T?> showGlassActionSheet<T>({
required BuildContext context,
String? title,
String? message,
required List<GlassActionSheetAction> actions,
String cancelLabel = 'Cancel',
bool showCancelButton = true,
bool barrierDismissible = true,
LiquidGlassSettings? settings,
GlassQuality? quality,
}) {
return showCupertinoModalPopup<T>(
context: context,
barrierDismissible: barrierDismissible,
barrierColor: GlassDefaults.barrierColor,
builder: (context) => _GlassActionSheetContent(
title: title,
message: message,
actions: actions,
cancelLabel: cancelLabel,
showCancelButton: showCancelButton,
settings: settings,
quality: quality,
),
);
}