GroupedListView<K, V extends Iterable> constructor

GroupedListView<K, V extends Iterable>({
  1. Key? key,
  2. required Map<K, V> groupedItems,
  3. Axis scrollDirection = Axis.vertical,
  4. bool reverse = false,
  5. ScrollController? controller,
  6. bool? primary,
  7. ScrollPhysics? physics,
  8. bool shrinkWrap = false,
  9. EdgeInsetsGeometry? padding,
  10. required GroupedListViewWidgetBuilder itemBuilder,
  11. required GroupedListViewWidgetBuilder groupBuilder,
  12. required GroupedListViewWidgetBuilder separatorBuilder,
  13. bool addAutomaticKeepAlives = true,
  14. bool addRepaintBoundaries = true,
  15. bool addSemanticIndexes = true,
  16. double? cacheExtent,
  17. DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  18. ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  19. String? restorationId,
  20. Clip clipBehavior = Clip.hardEdge,
  21. bool preCalculatedGroupedItemInfo = true,
})

Implementation

GroupedListView({
  Key? key,
  required Map<K, V> groupedItems,
  this.scrollDirection = Axis.vertical,
  this.reverse = false,
  this.controller,
  this.primary,
  this.physics,
  this.shrinkWrap = false,
  this.padding,
  required this.itemBuilder,
  required this.groupBuilder,
  required this.separatorBuilder,
  this.addAutomaticKeepAlives = true,
  this.addRepaintBoundaries = true,
  this.addSemanticIndexes = true,
  this.cacheExtent,
  this.dragStartBehavior = DragStartBehavior.start,
  this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  this.restorationId,
  this.clipBehavior = Clip.hardEdge,
  bool preCalculatedGroupedItemInfo = true,
}) : super(key: key) {
  itemCount = groupedItems.entries.length +
      groupedItems.entries.map((e) => e.value.length).reduce((value, element) => value + element);
  this.items = groupedItems;

  if (preCalculatedGroupedItemInfo) {
    final calculatedGroupItemInfos = _calculateGroupItemInfos();
    itemInfoProvider = (index) => calculatedGroupItemInfos[index];
  } else {
    itemInfoProvider = _getGroupedItemInfo;
  }
}