generateSliverSection<T> function
Widget
generateSliverSection<T>({
- String? title,
- required List<
T> items, - required Widget itemBuilder(
- T item
- List<
IconButtonData> actions = const [],
generateSection as slivers that build only the rows in view.
Implementation
Widget generateSliverSection<T>({
String? title,
required List<T> items,
required Widget Function(T item) itemBuilder,
List<IconButtonData> actions = const [],
String? footer,
}) {
if (items.isEmpty) {
return const SliverToBoxAdapter();
}
return SliverMainAxisGroup(
slivers: [
SliverToBoxAdapter(
child: title != null
? ListHeader(title: title, actions: actions)
: const ListSectionGap(),
),
SliverPrismList(
itemCount: items.length,
itemBuilder: (_, index) => ItemPositionProvider(
position: ItemPosition.get(index, items.length),
child: itemBuilder(items[index]),
),
),
if (footer != null) SliverToBoxAdapter(child: ListFooter(text: footer)),
],
);
}