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