buildLayout method
Widget
buildLayout({
- required BuildContext context,
- required IRefreshState<
T> state, - required Widget itemBuilder(
- BuildContext,
- T,
- int
override
Implementation
@override
Widget buildLayout({
required BuildContext context,
required IRefreshState<T> state,
required Widget Function(BuildContext, T, int) itemBuilder,
}) {
if (state.initialRefresh) {
return loadingBuilder?.call(context) ?? BaseWidget.loadingWidget(context);
} else if (state.hasError && state.dataList.isEmpty) {
return errorBuilder?.call(context) ?? BaseWidget.errorWidget(context);
} else if (state.dataList.isEmpty) {
return emptyBuilder?.call(context) ?? BaseWidget.emptyWidget(context);
}
return ListView.builder(
controller: scrollController,
primary: primary,
physics: physics,
shrinkWrap: shrinkWrap,
padding: padding,
itemExtent: itemExtent,
prototypeItem: prototypeItem,
itemCount: state.dataList.length,
cacheExtent: cacheExtent,
semanticChildCount: semanticChildCount,
restorationId: restorationId,
clipBehavior: clipBehavior,
itemBuilder: (context, index) =>
itemBuilder(context, state.dataList[index], index),
);
}