flutter上拉加载更多下拉刷新
在pubspec.yaml中
pull_to_refresh: 1.6.3
页面中
RefreshController _refreshController;
int pageNo = 1;
@override
void initState() {
super.initState();
_refreshController = RefreshController(initialRefresh: false);
}
// 下拉刷新
void _onRefresh() async {
pageNo = 1;
_refreshController.loadComplete();
}
// 上拉加载更多
void _onLoading() async {
pageNo++;
_refreshController.loadComplete();
}
RefreshConfiguration.copyAncestor(
context: context,
// Viewport不满一屏时,禁用上拉加载更多功能,应该配置更灵活一些,比如说一页条数大于等于总条数的时候设置或者总条数等于0
hideFooterWhenNotFull: true,
child: SmartRefresher(
enablePullDown: true,
enablePullUp: true,
header: WaterDropHeader(),
controller: _refreshController,
onRefresh: _onRefresh,
onLoading: _onLoading,
child: CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildBuilderDelegate((BuildContext context, int i) {
return BListItem(
height: 50,
enableChecked: true,
title: data[i].name,
onTap: () => onTap(data[i]),
titleStyle: TextStyle(fontSize: 15, color: Colors.black),
isChecked: _activeCode == data[i].code,
);
}, childCount: data?.length ?? 0),
),
],
),
),
),
需要注意的就是SmartRefresher的child需要直接加这种CustomScrollView或者listview等可滚动的组件
本人小白,各位想踏入前端的,我们可以一起学习,欢迎程序员大佬的指点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了