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相關的問題均可以進行討論。正如它的名字同樣,有問必答,只要羣主有時間,都會幫你們一塊兒解決問題。less