SmartPagination<T>.gridViewWithProvider constructor

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

Creates a pagination widget as a GridView layout Similar to PaginatorGridView

Implementation

SmartPagination.gridViewWithProvider({
  super.key,
  required PaginationRequest request,
  required PaginationProvider<T> provider,
  required this.itemBuilder,
  this.heightOfInitialLoadingAndEmptyWidget,
  this.gridDelegate = const SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 2,
  ),
  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.padding = const EdgeInsetsGeometry.all(0),
  this.physics,
  this.scrollController,
  this.allowImplicitScrolling = false,
  this.keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  this.header,
  this.footer,
  this.beforeBuild,
  this.listBuilder,
  this.cacheExtent,
  Widget? separator,
  double spacing = 4,
  SmartPaginationRefreshedChangeListener? refreshListener,
  List<SmartPaginationFilterChangeListener<T>>? filterListeners,
  // Cubit params
  OnInsertionCallback<T>? onInsertionCallback,
  VoidCallback? onClear,
  Logger? logger,
  int maxPagesInMemory = 5,
  RetryConfig? retryConfig,
  this.firstPageLoadingBuilder,
  this.firstPageErrorBuilder,
  this.firstPageEmptyBuilder,
  this.loadMoreLoadingBuilder,
  this.loadMoreErrorBuilder,
  this.loadMoreNoMoreItemsBuilder,
  this.invisibleItemsThreshold = 3,
}) : itemBuilderType = PaginateBuilderType.gridView,
     separator = separator ?? SizedBox(height: spacing),
     staggeredAxisDirection = null,
     pageController = null,
     onPageChanged = null,
     customViewBuilder = null,
     onReorder = null,
     internalCubit = true,
     cubit = SmartPaginationCubit<T>(
       request: request,
       provider: provider,
       listBuilder: listBuilder,
       onInsertionCallback: onInsertionCallback,
       onClear: onClear,
       logger: logger,
       maxPagesInMemory: maxPagesInMemory,
       retryConfig: retryConfig,
     ),
     listeners =
         refreshListener != null || filterListeners?.isNotEmpty == true
         ? [if (refreshListener != null) refreshListener, ...?filterListeners]
         : null;