TOC

zeking_refresh

一个支持刷新加载中,刷新失败,刷新空数据,加载更多加载中,加载更多失败,加载更多加载全部数据,业务loading的刷新组件

1. 快速使用

1. 依赖

dependencies:
  zeking_refresh: ^0.0.8

2. 安装

flutter packages get

3. 引用

import 'package:zeking_refresh/zeking_refresh.dart';

4. 简单使用

  ZekingRefreshController _refreshController;

  @override
  void initState() {
    _refreshController = ZekingRefreshController();
    super.initState();

    /// 首次进去 加载数据 ,会自动调用 onRefresh 方法
    _refreshController.refreshingWithLoadingView();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ZekingRefresh(
        controller: _refreshController,  // 必须参数
        onRefresh: onRefresh,
        onLoading: onLoading,
        child: ListView.builder(
          padding: EdgeInsets.all(0),
          itemBuilder: (BuildContext context, int index) {
            return ItemWidget(data[index], () {});
          },
          itemCount: data.length,
        ),
      ),
    );
  }

2. ZekingRefreshController

通过 ZekingRefreshController 的方法来进行不同场景的UI展示

方法说明
refreshingWithLoadingView()刷新:打开一个新的页面,首先有一个圈圈在中间转,同时请求数据 widget
refreshFaild({String uiMsg, String toastMsg})刷新:数据为空 widget
refreshEmpty({String uiMsg, String toastMsg})刷新:失败 widget
refreshSuccess({String toastMsg})刷新:成功,修改状态,显示结果
loadMoreFailed({String uiMsg, String toastMsg})加载更多:失败 widget
loadMoreNoMore({String uiMsg, String toastMsg})加载更多:已加载全部数据widget
loadMoreSuccess({String toastMsg})加载更多:成功,修改状态,
loading()业务加载中:loading widget ( 业务加载中:比如,上传图片,登录,提交数据的loading widget )
loadingEnd({String toastMsg})业务加载中: 结束 loading widget 的展示

说明一下:在上面的方法中,有的方法有uiMsgtoastMsg参数,是干什么的呢?

uiMsg 是用来动态修改 场景Ui上面的提示语的, 但是这个只对使用了框架默认的UI 才会起作用,若是自定义的 widget,需要在外部自己去setState

toastMsg 是用来谈吐司提示的,默认已经实现了 toast ,当然你不满足于默认的吐司样式, 可以自己去定义,也可以弹一个dialog,或者打印一个log,到时候传一个方法给我就好了, 具体的看ZekingRefreshtoastMethod参数,下面

3. ZekingRefresh

这个就是我们的刷新控件了,

ZekingRefresh({
        @required this.controller,
        @required this.onRefresh,
                  this.onLoading,
                  this.child,
                  this.displacement,
                  this.canLoadMore = true,
                  this.canRefresh = true,
                  this.scrollController,
                  this.physics,
                  this.useScrollController = true,
                  this.refreshLoadingWidget,
                  this.refreshLoadingImagePath,
                  this.refreshEmptyWidget,
                  this.refreshEmptyMessage,
                  this.refreshEmptyImagePath,
                  this.refreshEmptyImageWidth,
                  this.refreshEmptyImageHeight,
                  this.refreshEmptyCenterPadding,
                  this.refreshFailWidget,
                  this.refreshFailMessage,
                  this.refreshFailImagePath,
                  this.refreshFailImageWidth,
                  this.refreshFailImageHeight,
                  this.refreshFailCenterPadding,
                  this.loadLoadingWidget,
                  this.loadLoadingMessage,
                  this.loadFailWidget,
                  this.loadFailMessage,
                  this.loadNoMoreWidget,
                  this.loadNoMoreMessage,
                  this.loadingWidget,
                  this.toastMethod
              });
参数说明
controller其实就是 ZekingRefreshController 用来控制不同场景的切换
onRefresh刷新方法
onLoading加载更多方法
child只有支持了加载更多,最后才会转为CustomScrollview,剩下的不会
displacement下拉刷新圈圈的偏移量,默认是40
canLoadMore是否支持加载更多,默认 true
canRefresh是否支持 下拉刷新,默认 true
useScrollController是否给默认的ScrollController ,默认 true
scrollController当useScrollController为true,ScrollController也为null的话,会new 一个 useScrollController
physicsScrollPhysics
============================================
refreshLoadingWidget自定义的 刷新 加载中 widget
refreshLoadingImagePath设置框架 默认 的 刷新 加载中 widget的图片路径,会自动旋转 ,refreshLoadingWidget 和 refreshLoadingImagePath 都不设置的话,默认显示一个CircularProgressIndicator
============================================
refreshEmptyWidget自定义的 刷新 空数据 的 widget
refreshEmptyMessage设置框架 默认 刷新 空数据 widget 的 提示语 ( 默认为 : '暂无数据,请点击屏幕重试' )
refreshEmptyImagePath设置框架 默认 刷新 空数据 widget 的 图片路径,(图片和提示语的位置是居中,图片在上,提示语在下)
refreshEmptyImageWidth设置框架 默认 刷新 空数据 widget 的 图片 宽度 ,( 默认 136 )
refreshEmptyImageHeight设置框架 默认 刷新 空数据 widget 的 图片 高度 , ( 默认 122 )
refreshEmptyCenterPadding设置框架 默认 刷新 空数据 widget 的 图片 和 提示语 的间隔,( 默认 36 )
============================================
refreshFailWidget自定义的 刷新 失败 widget
refreshFailMessage设置框架 默认 刷新 失败 widget 的 提示语 ( 默认为 : '加载失败,请点击屏幕重试' )
refreshFailImagePath设置框架 默认 刷新 失败 widget 的 图片路径 ,(图片和提示语的位置是居中,图片在上,提示语在下)
refreshFailImageWidth设置框架 默认 刷新 失败 widget 的 图片 宽度 ,( 默认 136 )
refreshFailImageHeight设置框架 默认 刷新 失败 widget 的 图片 高度 , ( 默认 122 )
refreshFailCenterPadding设置框架 默认 刷新 失败 widget 的 图片 和 提示语 的间隔,( 默认 36 )
============================================
loadLoadingWidget自定义的 加载更多 加载中 widget
loadLoadingMessage设置框架 默认 的 加载更多 加载中 widget的提示语( 默认为: '正在加载更多数据' )
============================================
loadFailWidget自定义的 加载更多 失败 widget
loadFailMessage设置框架 默认 的 加载更多 失败 widget的提示语( 默认为: '加载失败,请点击重试' )
============================================
loadNoMoreWidget自定义的 加载更多 已加载全部数据 widget
loadNoMoreMessage设置框架 默认 的 加载更多 已加载全部数据 widget的提示语( 默认为: '已加载全部数据' )
============================================
loadingWidget自定义的 业务加载中 widget (业务加载中:比如,上传图片,登录,提交数据的loading widge)
============================================
toastMethod自定义的 弹吐司方法,

Libraries

zeking_refresh

Dart

VM

dart:ffi
Foreign Function Interface for interoperability with the C programming language. [...]

Web

dart:html
HTML elements and other resources for web-based applications that need to interact with the browser and the DOM (Document Object Model). [...]
dart:js
Low-level support for interoperating with JavaScript. [...]
dart:js_util
Utility methods to efficiently manipulate typed JSInterop objects in cases where the name to call is not known at runtime. You should only use these methods when the same effect cannot be achieved with @JS annotations. These methods would be extension methods on JSObject if Dart supported extension methods.