flutter listview上拉刷新下拉加载(RefreshIndicator)

listview 外面包裹一层 RefreshIndicator组件
属性:displacement 下拉刷新的距离
onRefresh, //下拉回调方法,
方法需要有async和await关键字,没有await,刷新图标立马消失,
没有async,刷新图标不会消失

body: RefreshIndicator( //下拉刷新回调 onRefresh: onRefresh, child: ListView.builder( ///保持ListView任何情况都能滚动,解决在RefreshIndicator的兼容问题。 physics: const AlwaysScrollableScrollPhysics(), itemCount: list.length+1, //滑动监听控制器 controller: _ScrollController, itemBuilder: (context,index){ if (index == list.length) { return new Container( margin: EdgeInsets.all(10), child: Align( child: CircularProgressIndicator(), ), ); } return ListTile( title: Text(list[index]), ); }), ), );

【flutter listview上拉刷新下拉加载(RefreshIndicator)】上拉加载:
设置滑动监听
判断是否滑动到底部,触发加载更多
//控制器 _ScrollController=ScrollController(); //滑动监听 _ScrollController.addListener((){ ///判断当前滑动位置是不是到达底部,触发加载更多回调 if(_ScrollController.position.pixels==_ScrollController.position.maxScrollExtent){ //if(Fluttertoast!=null){ //Fluttertoast.showToast(msg: "加载更多数据", toastLength: Toast.LENGTH_LONG); //} loadMore(); } });

    推荐阅读