Flutter ListView 加载更多
实现功能
- 到底加载
- 防止频繁加载
- 加载进度图标
- 全部展示提示
功能实现
到底加载
在initState()中加入
@override
void initState() {
super.initState();
_scrollController.addListener(() {
if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {
//TODO 到底部触发的行为
}
});
}
防止网络频繁加载
在加载函数中加入
_getMoreData() async {
if (!isPerformingRequest) {
setState(() => isPerformingRequest = true);
//TODO 加入网络请求函数调用
List<*> newEntries = await requestNet();
setState(() {
list.addAll(newEntries);
isPerformingRequest = false;
});
}
}
说明
1.isPerformingRequest 为全局变量
2.list 为显示List