refreshList method

dynamic refreshList(
  1. List<DataModel>? list
)

!!禁止父类重写此方法!! 父类接口请求成功后调用此方法 list 请求成功(list != null),请求失败(list == null)

Implementation

refreshList(List<DataModel>? list) {
  if (null != list) {
    if (Config.defPageNo == pageNo) {
      dataModelList.clear();
    }
    int listSize = list.length; // 提前保存原始数据长度,避免数据去重后影响分页判断
    if (list.isNotEmpty) {
      dataModelList.addAll(list);
      if (removeDuplicatesEnabled()) {
        dataModelList = dataModelList.toSet().toList();
      }
    }
    _rebuild();
    if (Config.defPageNo == pageNo) {
      refreshController.refreshCompleted();
      if (listSize < getPageSize()) {
        refreshController.loadNoData();
      } else {
        refreshController.resetNoData();
      }
    } else {
      if (listSize < getPageSize()) {
        refreshController.loadNoData();
      } else {
        refreshController.loadComplete();
      }
    }
  } else {
    if (Config.defPageNo == pageNo) {
      refreshController.refreshCompleted();
    } else {
      pageNo--; // 如果是加载更多,失败后重置为之前的pageNo
      refreshController.loadFailed();
    }
    _rebuild();
  }
}