SmartPagination<T>.staggeredGridViewWithCubit constructor

SmartPagination<T>.staggeredGridViewWithCubit({
  1. Key? key,
  2. required SmartPaginationCubit<T> cubit,
  3. required StaggeredGridTile itemBuilder(
    1. BuildContext context,
    2. List<T> documents,
    3. int index
    ),
  4. double? heightOfInitialLoadingAndEmptyWidget,
  5. Widget onError(
    1. Exception exception
    )?,
  6. void onReachedEnd(
    1. SmartPaginationLoaded<T> loader
    )?,
  7. void onLoaded(
    1. SmartPaginationLoaded<T> loader
    )?,
  8. Widget emptyWidget = const EmptyDisplay(),
  9. Widget loadingWidget = const InitialLoader(),
  10. Widget bottomLoader = const BottomLoader(),
  11. bool shrinkWrap = false,
  12. bool reverse = false,
  13. Axis scrollDirection = Axis.vertical,
  14. AxisDirection? staggeredAxisDirection,
  15. EdgeInsetsGeometry padding = const EdgeInsetsGeometry.all(0),
  16. ScrollPhysics? physics,
  17. bool allowImplicitScrolling = false,
  18. ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  19. Widget? header,
  20. Widget? footer,
  21. SmartPaginationLoaded<T> beforeBuild(
    1. SmartPaginationLoaded<T> state
    )?,
  22. ListBuilder<T>? listBuilder,
  23. required int crossAxisCount,
  24. double mainAxisSpacing = 4.0,
  25. double crossAxisSpacing = 4.0,
  26. Widget? separator,
  27. double spacing = 4,
  28. SmartPaginationRefreshedChangeListener? refreshListener,
  29. List<SmartPaginationFilterChangeListener<T>>? filterListeners,
  30. ScrollController? scrollController,
  31. double? cacheExtent,
  32. Widget firstPageLoadingBuilder(
    1. BuildContext context
    )?,
  33. Widget firstPageErrorBuilder(
    1. BuildContext context,
    2. Exception error,
    3. VoidCallback retry
    )?,
  34. Widget firstPageEmptyBuilder(
    1. BuildContext context
    )?,
  35. Widget loadMoreLoadingBuilder(
    1. BuildContext context
    )?,
  36. Widget loadMoreErrorBuilder(
    1. BuildContext context,
    2. Exception error,
    3. VoidCallback retry
    )?,
  37. Widget loadMoreNoMoreItemsBuilder(
    1. BuildContext context
    )?,
  38. int invisibleItemsThreshold = 3,
})

Creates a pagination widget as a StaggeredGridView layout with an external Cubit

Implementation

SmartPagination.staggeredGridViewWithCubit({
  super.key,
  required this.cubit,
  required StaggeredGridTile Function(
    BuildContext context,
    List<T> documents,
    int index,
  )
  this.itemBuilder,
  this.heightOfInitialLoadingAndEmptyWidget,
  this.onError,
  this.onReachedEnd,
  this.onLoaded,
  this.emptyWidget = const EmptyDisplay(),
  this.loadingWidget = const InitialLoader(),
  this.bottomLoader = const BottomLoader(),
  this.shrinkWrap = false,
  this.reverse = false,
  this.scrollDirection = Axis.vertical,
  this.staggeredAxisDirection,
  this.padding = const EdgeInsetsGeometry.all(0),
  this.physics,
  this.allowImplicitScrolling = false,
  this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  this.header,
  this.footer,
  this.beforeBuild,
  this.listBuilder,
  required int crossAxisCount,
  double mainAxisSpacing = 4.0,
  double crossAxisSpacing = 4.0,
  Widget? separator,
  double spacing = 4,
  SmartPaginationRefreshedChangeListener? refreshListener,
  List<SmartPaginationFilterChangeListener<T>>? filterListeners,
  this.scrollController,
  this.cacheExtent,
  this.firstPageLoadingBuilder,
  this.firstPageErrorBuilder,
  this.firstPageEmptyBuilder,
  this.loadMoreLoadingBuilder,
  this.loadMoreErrorBuilder,
  this.loadMoreNoMoreItemsBuilder,
  this.invisibleItemsThreshold = 3,
}) : itemBuilderType = PaginateBuilderType.staggeredGridView,
     gridDelegate = SliverGridDelegateWithFixedCrossAxisCount(
       crossAxisCount: crossAxisCount,
       mainAxisSpacing: mainAxisSpacing,
       crossAxisSpacing: crossAxisSpacing,
     ),
     separator = separator ?? SizedBox(height: spacing),
     pageController = null,
     onPageChanged = null,
     customViewBuilder = null,
     onReorder = null,
     internalCubit = false,
     listeners =
         refreshListener != null || filterListeners?.isNotEmpty == true
         ? [if (refreshListener != null) refreshListener, ...?filterListeners]
         : null;