AdvancedListView<T> constructor

const AdvancedListView<T>({
  1. Key? key,
  2. required List<T> items,
  3. required Widget itemBuilder(
    1. BuildContext context,
    2. T item,
    3. int index,
    4. BoxConstraints constraints,
    ),
  4. LayoutMode layoutMode = LayoutMode.auto,
  5. SliverGridDelegate? gridDelegate,
  6. double? minItemWidth,
  7. bool isLoading = false,
  8. WidgetBuilder? skeletonBuilder,
  9. int skeletonCount = 10,
  10. int sortComparator(
    1. T a,
    2. T b
    )?,
  11. bool sortOrderAscending = true,
  12. bool allowReorder = false,
  13. void onReorder(
    1. int oldIndex,
    2. int newIndex
    )?,
  14. Widget indexBarBuilder(
    1. BuildContext context
    )?,
  15. ValueChanged<String>? onIndexTap,
  16. bool multiSelectEnabled = false,
  17. bool singleSelectEnabled = false,
  18. ValueChanged<Set<T>>? onSelectionChanged,
  19. ValueChanged<T?>? onSelected,
  20. Future<void> onRefresh()?,
  21. List<Widget> leadingActions(
    1. BuildContext context,
    2. T item,
    3. int index
    )?,
  22. List<Widget> trailingActions(
    1. BuildContext context,
    2. T item,
    3. int index
    )?,
  23. void onLeadingSwipe(
    1. T item,
    2. int index
    )?,
  24. void onTrailingSwipe(
    1. T item,
    2. int index
    )?,
  25. Widget? emptyWidget,
  26. Widget? errorWidget,
  27. ScrollController? scrollController,
  28. ScrollPhysics? physics,
  29. EdgeInsets? padding,
  30. double mainAxisSpacing = 0.0,
  31. double crossAxisSpacing = 0.0,
  32. double childAspectRatio = 1.0,
  33. bool showIndexBar = false,
  34. List<String>? indexBarLetters,
  35. Duration animationDuration = const Duration(milliseconds: 300),
  36. ValueChanged<T>? onItemTap,
  37. ValueChanged<T>? onItemLongPress,
  38. Key? listKey,
})

Implementation

const AdvancedListView({
  super.key,
  required this.items,
  required this.itemBuilder,
  this.layoutMode = LayoutMode.auto,
  this.gridDelegate,
  this.minItemWidth,
  this.isLoading = false,
  this.skeletonBuilder,
  this.skeletonCount = 10,
  this.sortComparator,
  this.sortOrderAscending = true,
  this.allowReorder = false,
  this.onReorder,
  this.indexBarBuilder,
  this.onIndexTap,
  this.multiSelectEnabled = false,
  this.singleSelectEnabled = false,
  this.onSelectionChanged,
  this.onSelected,
  this.onRefresh,
  this.leadingActions,
  this.trailingActions,
  this.onLeadingSwipe,
  this.onTrailingSwipe,
  this.emptyWidget,
  this.errorWidget,
  this.scrollController,
  this.physics,
  this.padding,
  this.mainAxisSpacing = 0.0,
  this.crossAxisSpacing = 0.0,
  this.childAspectRatio = 1.0,
  this.showIndexBar = false,
  this.indexBarLetters,
  this.animationDuration = const Duration(milliseconds: 300),
  this.onItemTap,
  this.onItemLongPress,
  this.listKey,
}) : assert(
        !(multiSelectEnabled && singleSelectEnabled),
        'Cannot enable both multi-select and single-select modes',
      );