multiChildStrategy method
Widget
multiChildStrategy(
- BuildContext context,
- Widget multiChild(),
- List<
RegionRegistration> ? data, { - Widget separator(
- BuildContext context
override
Implementation
@override
Widget multiChildStrategy(
BuildContext context,
Widget Function(List<Widget> children) multiChild,
List<RegionRegistration>? data, {
Widget Function(BuildContext context)? separator,
}) {
if (data == null || data.isEmpty) return const SizedBox.shrink();
final groups = groupBy(
data.where((data) => data.metadata is DrawerMetadata), (data) => (data.metadata as DrawerMetadata).location);
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 20.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (groups.containsKey(DrawerLocation.top)) ...[
super.multiChildStrategy(context, multiChild, groups[DrawerLocation.top]),
if (separator != null) separator(context),
],
Expanded(
child: (groups.containsKey(DrawerLocation.content))
? super.multiChildStrategy(context, multiChild, groups[DrawerLocation.content])
: const SizedBox.shrink()),
if (groups.containsKey(DrawerLocation.bottom)) ...[
if (separator != null) separator(context),
super.multiChildStrategy(context, multiChild, groups[DrawerLocation.bottom]),
]
],
),
);
}