multiChildStrategy method

  1. @protected
Widget multiChildStrategy(
  1. BuildContext context,
  2. Widget multiChild(
    1. List<Widget> children
    ),
  3. List<RegionRegistration>? data
)

Implementation

@protected
Widget multiChildStrategy(
    BuildContext context, Widget Function(List<Widget> children) multiChild, List<RegionRegistration>? data) {
  if (data == null || data.isEmpty) return const SizedBox.shrink();
  data.sort((a, b) {
    if (a.metadata is! MultiChildMetadata) return 0;
    if (b.metadata is! MultiChildMetadata) return 0;
    final first = a.metadata as MultiChildMetadata;
    final second = b.metadata as MultiChildMetadata;
    if (first.order == second.order) return 0;
    return (first.order < second.order) ? -1 : 1;
  });
  return multiChild(data
      .map((e) => e.widgetFromRegistration(context, templateChild))
      .where((element) => element != null)
      .cast<Widget>()
      .toList());
}