Flutter默认不支持上拉加载,下拉刷新也仅仅支持Material的一种样式。Android开发使用过SmartRefreshLayout的小伙伴都知道这是一个强大的刷新UI库,集成了不少出色的动画效果,而且对自定义支持很是好。接下来给你们介绍的就是,Flutter版本的刷新UI库---flutter_easyrefresh,在功能方面已经很接近Android的SmartRefreshLayout。ios
Github地址:flutter_easyrefreshgit
正如名字同样,EasyRefresh很容易就能在Flutter应用上实现下拉刷新以及上拉加载操做,它支持几乎全部的Flutter控件,但前提是须要包裹成ScrollView。它的功能与Android的SmartRefreshLayout很类似,一样也吸收了不少三方库的优势。EasyRefresh中集成了多种风格的Header和Footer,可是它并无局限性,你能够很轻松的自定义。使用Flutter强大的动画,甚至随便一个简单的控件也能够完成。EasyRefresh的目标是为Flutter打造一个强大,稳定,成熟的下拉刷新框架。github
//pub方式 dependencies: flutter_easyrefresh: last_version //导入方式 dependencies: flutter_easyrefresh: path: 项目路径
import 'package:flutter_easyrefresh/easy_refresh.dart'; .... GlobalKey<EasyRefreshState> _easyRefreshKey = new GlobalKey<EasyRefreshState>(); .... new EasyRefresh( key: _easyRefreshKey, child: ScrollView(), onRefresh: () async{ .... }, loadMore: () async { .... }, )
// 若是不须要能够不用设置EasyRefresh的key _easyRefreshKey.currentState.callRefresh(); _easyRefreshKey.currentState.callLoadMore();
import 'package:flutter_easyrefresh/easy_refresh.dart'; .... GlobalKey<RefreshHeaderState> _headerKey = new GlobalKey<RefreshHeaderState>(); GlobalKey<RefreshFooterState> _footerKey = new GlobalKey<RefreshFooterState>(); .... // 由于EasyRefresh会对Header和Footer进行更新,为了与用户保持统一的操做状态,必须设置key // 不一样的Header和Footer可能有不一样的参数设置 new EasyRefresh( refreshHeader: MaterialHeader( key: _headerKey, ), refreshFooter: MaterialFooter( key: _footerKey, ), child: ScrollView(), .... )
这个群不单单是解决EasyreFresh的问题,任何Flutter相关的问题均可以进行讨论。正如它的名字同样,有问必答,只要群主有时间,都会帮你们一块儿解决问题。async