showItemPickerDialog<T> function
Future<T?>
showItemPickerDialog<T>(
- BuildContext context, {
- required ItemChildDelegate<
T> items, - required ItemPickerBuilder<
T> builder, - ItemPickerLayout layout = const GridItemPickerLayout(),
- T? initialValue,
- BoxConstraints? constraints,
- required Widget title,
Implementation
Future<T?> showItemPickerDialog<T>(
BuildContext context, {
required ItemChildDelegate<T> items,
required ItemPickerBuilder<T> builder,
ItemPickerLayout layout = const GridItemPickerLayout(),
T? initialValue,
BoxConstraints? constraints,
required Widget title,
}) {
return showDialog<T>(
context: context,
builder: (context) {
final theme = Theme.of(context);
final padding = MediaQuery.paddingOf(context);
return ModalBackdrop(
borderRadius: theme.borderRadiusXl,
child: ModalContainer(
borderRadius: theme.borderRadiusXl,
padding: EdgeInsets.zero,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: EdgeInsets.all(16.0 * theme.scaling) +
EdgeInsets.only(top: padding.top),
child: title,
),
ConstrainedBox(
constraints: constraints ??
BoxConstraints(
maxWidth: 320 * theme.scaling,
maxHeight: 320 * theme.scaling,
),
child: MediaQuery(
data: MediaQuery.of(context).copyWith(
padding: padding.copyWith(top: 0) +
const EdgeInsets.only(
bottom: 8.0, left: 8.0, right: 8.0) *
theme.scaling,
),
child: ItemPickerDialog<T>(
items: items,
builder: builder,
layout: layout,
value: initialValue,
onChanged: (value) {
Navigator.of(context).pop(value);
},
),
),
)
],
),
),
);
},
);
}