baseRefreshState method
Widget
baseRefreshState(
- NotifierBuilder<
T?> widget, { - ScrollController? scrollController,
- Widget onEmptyWidget(
- String? status
- String? placeholderImagePath,
- String? placeholderEmptyTitle,
- bool firstRefresh = false,
- VoidCallback? onRefresh,
- VoidCallback? onLoading,
- void onReloadTap()?,
Implementation
Widget baseRefreshState(
NotifierBuilder<T?> widget, {
ScrollController? scrollController,
Widget Function(String? status)? onEmptyWidget,
String? placeholderImagePath,
String? placeholderEmptyTitle,
bool firstRefresh = false,
VoidCallback? onRefresh,
VoidCallback? onLoading,
void Function()? onReloadTap,
}) {
_placeholderEmptyTitle = placeholderEmptyTitle;
return SimpleBuilder(builder: (_) {
Widget? emptyWidget() {
return onEmptyWidget != null
? onEmptyWidget(status.errorMessage)
: BasePlaceholderView(
title: status.errorMessage,
// 指定当前页面的占位图路径(网络默认placeholder_remote错误除外, 默认placeholder_empty)
image: placeholderImagePath,
onTap: onReloadTap ??
() {
change(state, status: RxStatus.loading());
onRequestPage(page);
},
);
}
return BaseRefresh(
controller: refreshController,
scrollController: scrollController,
emptyWidget: state.isEmptyOrNull ? emptyWidget() : null,
firstRefresh: firstRefresh,
onRefresh: implementationOnRefresh
? (onRefresh ?? () async => onRequestPage(kFirstPage))
: null,
onLoading: implementationOnLoad && state != null
? (onLoading ?? () async => onRequestPage(page + 1))
: null,
child: (state == null && !status.isSuccess || state.isEmptyOrNull)
? emptyWidget() ?? SizedBox()
: widget(state),
);
});
}