字
字节笔记本
2026年2月19日
flutter_easy_refresh:Flutter 下拉刷新上拉加载组件
本文介绍 flutter_easy_refresh,一个 Flutter 下拉刷新和上拉加载组件,支持几乎所有 Flutter 可滚动组件。
flutter_easy_refresh 简介
flutter_easy_refresh 是由 xuelongqy 开发的 Flutter 插件,提供下拉刷新和上拉加载功能。它支持几乎所有 Flutter 的可滚动组件,在 GitHub 上拥有 4.1k stars 和 665 forks,采用 MIT 许可证。
核心定位:A flutter widget that provides pull-down refresh and pull-up load
核心特性
- 支持所有可滚动组件
- 滚动物理作用域精确匹配
- 集成多种 Header 和 Footer 样式
- 支持自定义样式实现各种动画效果
- 支持下拉刷新、上拉加载(可通过控制器触发和完成)
- 支持指示器位置设置
- 支持页面启动时刷新
- 支持安全区域
- 可自定义滚动参数
基本信息
- GitHub 仓库:https://github.com/xuelongqy/flutter_easy_refresh
- Pub.dev:https://pub.dev/packages/easy_refresh
- 在线演示:https://xuelongqy.github.io/flutter_easy_refresh/
- API 文档:https://pub.dev/documentation/easy_refresh/latest/
- 星标数:4.1k stars
- Fork 数:665 forks
技术栈
| 语言 | 占比 |
|---|---|
| Dart | 93.6% |
| C++ | 3.2% |
| CMake | 1.7% |
| 其他 | 1.5% |
安装方法
在 pubspec.yaml 中添加:
yaml
dependencies:
easy_refresh: ^3.0.0然后执行:
bash
flutter pub get使用示例
基础用法
dart
import 'package:easy_refresh/easy_refresh.dart';
EasyRefresh(
onRefresh: () async {
// 下拉刷新逻辑
await Future.delayed(Duration(seconds: 2));
},
onLoad: () async {
// 上拉加载逻辑
await Future.delayed(Duration(seconds: 2));
},
child: ListView.builder(
itemCount: 20,
itemBuilder: (context, index) {
return ListTile(title: Text('Item $index'));
},
),
);使用控制器
dart
final EasyRefreshController _controller = EasyRefreshController();
EasyRefresh(
controller: _controller,
onRefresh: () async {
// 刷新逻辑
_controller.finishRefresh();
},
onLoad: () async {
// 加载逻辑
_controller.finishLoad(IndicatorResult.noMore);
},
child: ListView(),
);
// 触发刷新
_controller.callRefresh();
// 触发加载
_controller.callLoad();自定义样式
dart
EasyRefresh(
header: ClassicHeader(
dragText: 'Pull to refresh',
armedText: 'Release ready',
readyText: 'Refreshing...',
processingText: 'Refreshing...',
processedText: 'Succeeded',
noMoreText: 'No more',
failedText: 'Failed',
showMessage: false,
showTime: false,
),
footer: ClassicFooter(
dragText: 'Pull to load',
armedText: 'Release ready',
readyText: 'Loading...',
processingText: 'Loading...',
processedText: 'Succeeded',
noMoreText: 'No more',
failedText: 'Failed',
),
onRefresh: () async {},
onLoad: () async {},
child: ListView(),
);支持的滚动组件
- ListView
- GridView
- CustomScrollView
- SingleChildScrollView
- PageView
- 几乎所有 Flutter 可滚动组件
适用场景
- 列表页面下拉刷新
- 分页加载更多
- 聊天界面下拉加载历史
- 任何需要刷新/加载的滚动页面
总结
flutter_easy_refresh 是 Flutter 生态中最流行的刷新组件之一,其优势包括:
- 功能全面:支持各种刷新场景
- 高度可定制:支持自定义样式和动画
- 易于使用:API 简洁,文档完善
- 社区活跃:持续更新,问题响应及时
对于需要下拉刷新/上拉加载功能的 Flutter 应用来说,这是首选方案。
分享: