collectionWidget method
Implementation
Widget collectionWidget(BuildContext context, ListState<T> state) {
final opts = _collectionOptions;
opts.assertCorrectType(_collectionDisplayType);
opts.verifyOrThrow(_collectionDisplayType);
switch (_collectionDisplayType) {
case CollectionWidgetStateType.list:
return InfiniteList<T>(
options: opts.asOrThrow<InfiniteListOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
scrollController: scrollController,
separatorBuilder: separatorBuilder,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
);
case CollectionWidgetStateType.sliverList:
return SliverInfiniteList<T>(
options: opts.asOrThrow<SliverInfiniteListOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
scrollController: scrollController,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
topWidgetBuilder: (c) => topWidget(c, state),
bottomWidgetBuilder: (c) => bottomWidget(c, state),
);
case CollectionWidgetStateType.animatedList:
return AnimatedInfiniteList<T>(
options: opts.asOrThrow<AnimatedInfiniteListOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
scrollController: scrollController,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadTopData: null,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
separatorBuilder: separatorBuilder,
deleteAnimation: deleteAnimation,
insertAnimation: insertAnimation,
);
case CollectionWidgetStateType.animatedSliverList:
return AnimatedSliverInfiniteList<T>(
options: opts.asOrThrow<AnimatedSliverInfiniteListOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
separatorBuilder: separatorBuilder,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadTopData: null,
scrollController: scrollController,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
topWidgetBuilder: (c) => topWidget(c, state),
bottomWidgetBuilder: (c) => bottomWidget(c, state),
);
case CollectionWidgetStateType.grid:
return InfiniteGrid<T>(
options: opts.asOrThrow<InfiniteGridOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
scrollController: scrollController,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
);
case CollectionWidgetStateType.sliverGrid:
return SliverInfiniteGrid<T>(
options: opts.asOrThrow<SliverInfiniteGridOptions>(),
items: state.list,
itemBuilder: itemBuilder,
bloc: bloc.infiniteListBloc,
scrollController: scrollController,
refreshOnSwipe: bloc.isRefreshable ? refreshData : null,
loadBottomData: bloc.isInfinite ? loadNextPage : null,
loadMoreWidgetBuilder: loadMoreWidgetBuilder,
refreshWidgetBuilder: refreshWidgetBuilder,
topWidgetBuilder: (c) => topWidget(c, state),
bottomWidgetBuilder: (c) => bottomWidget(c, state),
);
}
}