YRefreshGridView<T> function
Widget
YRefreshGridView<T>({
- required List<
T> models, - required SliverGridDelegate gridDelegate,
- dynamic onRefresh()?,
- required dynamic itemBuilder(
- BuildContext context,
- int index,
- T model
- ScrollController? scrollController,
- Header? header,
- dynamic onLoadMore()?,
- dynamic bottomBouncing = true,
- dynamic scrollbar = true,
- EdgeInsets padding = EdgeInsets.zero,
Implementation
Widget YRefreshGridView<T>({required List<T> models, required SliverGridDelegate gridDelegate, Function()? onRefresh, required Function(BuildContext context, int index, T model) itemBuilder, ScrollController? scrollController, Header? header, Footer? footer, Function()? onLoadMore, bottomBouncing = true, scrollbar = true, EdgeInsets padding = EdgeInsets.zero}) {
var easyRefresh = EasyRefresh(
onRefresh: onRefresh != null ? () => onRefresh() : null,
onLoad: onLoadMore != null ? () => onLoadMore() : null,
bottomBouncing: bottomBouncing,
scrollController: scrollController,
header: header ?? (onRefresh != null ? BezierCircleHeader(backgroundColor: YConfig.themeColor.withOpacity(0.1), color: YConfig.themeColor) : null),
footer: footer ?? (onLoadMore != null ? BallPulseFooter(backgroundColor: YConfig.themeColor.withOpacity(0.1), color: YConfig.themeColor, enableInfiniteLoad: false) : null),
child: Container(
constraints: const BoxConstraints(minHeight: 300),
child: GridView.builder(
padding: padding,
primary: false,
shrinkWrap: true,
gridDelegate: gridDelegate,
itemCount: models.length,
itemBuilder: (context, index) => itemBuilder(context, index, models[index]),
),
),
);
return scrollbar ? Scrollbar(child: easyRefresh) : easyRefresh;
}