initMVVM<VM extends BaseViewModel<BaseModel, BaseEntity>> function

void initMVVM<VM extends BaseViewModel<BaseModel, BaseEntity>>(
  1. List<BaseModel> models, {
  2. int initPage = 1,
  3. DataFromNetworkOrDatabase? dataOfHttpOrData,
  4. VSBuilder<VM>? busy,
  5. VSBuilder<VM>? empty,
  6. VSBuilder<VM>? error,
  7. VSBuilder<VM>? unAuthorized,
  8. VSBuilder<VM>? listDataEmpty,
  9. ResetRefreshState? resetRefreshState,
  10. FinishRefresh? finishRefresh,
  11. ResetLoadState? resetLoadState,
  12. FinishLoad? finishLoad,
  13. ControllerBuild? controllerBuild,
  14. num? height,
  15. num? width,
})

初始化 配置初始页面全局状态页

Implementation

void initMVVM<VM extends BaseViewModel>(
  List<BaseModel> models, {
  int initPage = 1,
  DataFromNetworkOrDatabase? dataOfHttpOrData,
  VSBuilder<VM>? busy, //全局状态配置
  VSBuilder<VM>? empty, //全局状态配置
  VSBuilder<VM>? error, //全局状态配置
  VSBuilder<VM>? unAuthorized, //全局状态配置
  VSBuilder<VM>? listDataEmpty, //全局状态配置
  ResetRefreshState? resetRefreshState,
  FinishRefresh? finishRefresh,
  ResetLoadState? resetLoadState,
  FinishLoad? finishLoad,
  ControllerBuild? controllerBuild,
  num? height, // 高度
  num? width, // 宽度
}) {
  /// 载入model 后期调用API
  models.insert(0, BaseModel());
  addModel(list: models);

  initPageSize(width?.toDouble(), height?.toDouble());

  BaseListViewModel.pageFirst = initPage;
  if (busy != null) ViewConfig.gBusy = busy as VSBuilder;
  if (empty != null) ViewConfig.gEmpty = empty as VSBuilder;
  if (error != null) ViewConfig.gError = error as VSBuilder;
  if (unAuthorized != null) {
    ViewConfig.gunAuthorized = unAuthorized as VSBuilder;
  }
  if (listDataEmpty != null) {
    ViewConfig.gListDataEmpty = listDataEmpty as VSBuilder;
  }

  dataOfHttpOrData ??= (vm) => true;
  BaseViewModel._dataFromNetworkOrDatabase = dataOfHttpOrData;

  if (resetRefreshState != null) {
    BaseListViewModel._resetRefreshState = resetRefreshState;
  }
  if (finishRefresh != null) BaseListViewModel._finishRefresh = finishRefresh;
  if (resetLoadState != null) {
    BaseListViewModel._resetLoadState = resetLoadState;
  }
  if (finishLoad != null) BaseListViewModel._finishLoad = finishLoad;
  if (controllerBuild != null) {
    BaseListViewModel._controllerBuild = controllerBuild;
  }
}