showSheet<T> static method
Future<T?>
showSheet<T>({
- required BuildContext context,
- required List<
T> items, - required Widget itemBuilder(
- T item
- String? title,
Helper to show a bottom sheet picker.
Implementation
static Future<T?> showSheet<T>({
required BuildContext context,
required List<T> items,
required Widget Function(T item) itemBuilder,
String? title,
}) {
return showCupertinoModalPopup<T>(
context: context,
builder: (context) => Container(
height: 300,
decoration: BoxDecoration(
color: CupertinoColors.systemBackground.resolveFrom(context),
borderRadius: const BorderRadius.vertical(top: Radius.circular(20)),
),
child: Column(
children: [
if (title != null)
Container(
// Minimum, not fixed, so a scaled-up title is not clipped.
constraints: const BoxConstraints(minHeight: 50),
alignment: Alignment.center,
child: Text(title,
style: const TextStyle(fontWeight: FontWeight.bold)),
),
Expanded(
child: CupertinoPicker.builder(
itemExtent: 40,
onSelectedItemChanged: (index) {
// Handle live update if needed
},
itemBuilder: (context, index) {
if (index < 0 || index >= items.length) return null;
return itemBuilder(items[index]);
},
childCount: items.length,
),
),
],
),
),
);
}