buildSliver method
Implementation
List<Widget> buildSliver() {
final state = viewModel.getPaginationState();
if (state == PaginationState.loading) {
return [
SliverFillRemaining(
hasScrollBody: false,
child: _ProgressState(
padding: viewModel.padding,
progressIndicator: widget.progressIndicator,
),
),
];
}
if (state == PaginationState.empty) {
return [
SliverFillRemaining(
hasScrollBody: false,
child: viewModel.emptyStateWidget,
),
];
}
if (state == PaginationState.error) {
return [
SliverFillRemaining(
hasScrollBody: false,
child: viewModel.errorWidget,
),
];
}
return [
if (viewModel.header != null) SliverToBoxAdapter(child: viewModel.header),
SliverPadding(
padding: viewModel.padding ?? EdgeInsets.zero,
sliver: SliverList(
delegate: SliverChildBuilderDelegate(
sliverDelegateBuilder,
childCount: _computeActualChildCount(viewModel.itemsCount),
),
),
),
// ignore: avoid-returning-widgets
if (viewModel.footer != null) buildFooter(),
];
}