在 Flutter 中,修改 EasyRefresh 的 Header 和 Footer 主要通过 header 和 footer 参数来自定义样式。以下是具体方法:
1. 使用内置 Header/Footer
EasyRefresh 提供了多种内置组件(如 ClassicalHeader、MaterialHeader),可直接配置属性:
EasyRefresh(
header: ClassicalHeader(
refreshText: '下拉刷新',
refreshReadyText: '释放刷新',
refreshingText: '刷新中...',
refreshedText: '刷新完成',
textColor: Colors.red, // 修改文字颜色
),
footer: ClassicalFooter(
loadText: '上拉加载',
loadReadyText: '释放加载',
loadingText: '加载中...',
loadedText: '加载完成',
),
child: ListView(...),
onRefresh: () async {...},
onLoad: () async {...},
)
2. 完全自定义 Header/Footer
继承 Header 或 Footer 类实现自定义组件:
class CustomHeader extends Header {
@override
Widget build(BuildContext context, RefreshMode mode) {
return Container(
height: 60,
alignment: Alignment.center,
child: Text(
mode == RefreshMode.refresh ? '自定义刷新中...' : '下拉刷新',
style: TextStyle(color: Colors.blue),
),
);
}
}
// 使用方式
EasyRefresh(
header: CustomHeader(),
child: ...,
)
3. 使用第三方库扩展
例如集成 flutter_easyrefresh 的 PhoenixHeader(仿支付宝样式):
EasyRefresh(
header: PhoenixHeader(),
footer: PhoenixFooter(),
...,
)
注意事项:
- 内置组件支持修改文字、颜色、图标等属性
- 自定义时需要根据
RefreshMode 处理不同状态
- 可通过
GlobalKey<EasyRefreshState> 控制刷新状态
根据需求选择合适的方式,内置组件适合快速修改样式,自定义则适合复杂 UI 需求。