baseRefreshState method

Widget baseRefreshState(
  1. NotifierBuilder<T?> widget, {
  2. ScrollController? scrollController,
  3. Widget onEmptyWidget(
    1. String? status
    )?,
  4. String? placeholderImagePath,
  5. String? placeholderEmptyTitle,
  6. bool firstRefresh = false,
  7. VoidCallback? onRefresh,
  8. VoidCallback? onLoading,
  9. 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),
    );
  });
}