方式一:RefreshIndicator+ListView实现
import 'package:flutter/material.dart';
class SimpleRefreshDemoPage extends StatefulWidget {
const SimpleRefreshDemoPage({super.key});
@override
State<StatefulWidget> createState() {
return _SimpleRefreshDemoPage();
}
}
class _SimpleRefreshDemoPage extends State<SimpleRefreshDemoPage> {
final int pageSize = 50;
bool disposed = false;
List<String> dataList = [];
final ScrollController _scrollController = ScrollController();
final GlobalKey<RefreshIndicatorState> refreshKey = GlobalKey();
Future<void> onRefresh() async {
await Future.delayed(const Duration(seconds: 4));
dataList.clear();
for (int i = 0; i < pageSize; i++) {
dataList.add("refresh");
}
if (disposed) {
return;
}
setState(() {});
}
Future<void> loadMore() async {
await Future.delayed(const Duration(seconds: 4));
for (int i = 0; i < pageSize; i++) {
dataList.add("loadmore");
}
if (disposed) {
return;
}
setState(() {});
}
@override
void initState() {
super.initState();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScro