SmartPagination<T>.staggeredGridViewWithCubit constructor
SmartPagination<T>.staggeredGridViewWithCubit ({
- Key? key,
- required SmartPaginationCubit<
T> cubit, - required StaggeredGridTile itemBuilder(
- BuildContext context,
- List<
T> documents, - int index
- double? heightOfInitialLoadingAndEmptyWidget,
- Widget onError(
- Exception exception
- void onReachedEnd(
- SmartPaginationLoaded<
T> loader
- SmartPaginationLoaded<
- void onLoaded(
- SmartPaginationLoaded<
T> loader
- SmartPaginationLoaded<
- Widget emptyWidget = const EmptyDisplay(),
- Widget loadingWidget = const InitialLoader(),
- Widget bottomLoader = const BottomLoader(),
- bool shrinkWrap = false,
- bool reverse = false,
- Axis scrollDirection = Axis.vertical,
- AxisDirection? staggeredAxisDirection,
- EdgeInsetsGeometry padding = const EdgeInsetsGeometry.all(0),
- ScrollPhysics? physics,
- bool allowImplicitScrolling = false,
- ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
- Widget? header,
- SmartPaginationLoaded<
T> beforeBuild(- SmartPaginationLoaded<
T> state
- SmartPaginationLoaded<
- ListBuilder<
T> ? listBuilder, - required int crossAxisCount,
- double mainAxisSpacing = 4.0,
- double crossAxisSpacing = 4.0,
- Widget? separator,
- double spacing = 4,
- SmartPaginationRefreshedChangeListener? refreshListener,
- List<
SmartPaginationFilterChangeListener< ? filterListeners,T> > - ScrollController? scrollController,
- double? cacheExtent,
- Widget firstPageLoadingBuilder(
- BuildContext context
- Widget firstPageErrorBuilder(
- BuildContext context,
- Exception error,
- VoidCallback retry
- Widget firstPageEmptyBuilder(
- BuildContext context
- Widget loadMoreLoadingBuilder(
- BuildContext context
- Widget loadMoreErrorBuilder(
- BuildContext context,
- Exception error,
- VoidCallback retry
- Widget loadMoreNoMoreItemsBuilder(
- BuildContext context
- 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;