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 GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: crossAxisCount,
mainAxisSpacing: mainAxisSpacing,
crossAxisSpacing: crossAxisSpacing,
),
itemCount: state.dataList.length,
itemBuilder: (context, index) =>
itemBuilder(context, state.dataList[index], index),
);
}