flutter pub add pull_to_refresh
pub.dev/packages/pu…
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
class ListViewFive extends StatefulWidget {
const ListViewFive({super.key});
@override
State<ListViewFive> createState() => _ListViewFiveState();
}
class _ListViewFiveState extends State<ListViewFive> {
List list = [];
RefreshController refreshController = new RefreshController();
Widget defaultHeader = defaultTargetPlatform == TargetPlatform.iOS ?
ClassicHeader(
idleText: "下拉刷新",
releaseText: "释放刷新",
refreshingText: "刷新中",
failedText: "刷新失败",
completeText: "刷新成功",
):MaterialClassicHeader();
final LoadIndicator defaultFooter = ClassicFooter(
failedText: "加载失败",
idleText: "上拉加载更多",
canLoadingText: "取消加载",
loadingText: "加载中",
noDataText: "暂无等多数据",
);
num offserFlag = 0;
@override
void initState() {
super.initState();
for(int i = 0;i<30;i++){
list.add("item $i");
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("下拉刷新组件SmartRefresher"),
),
body:SmartRefresher(
header: defaultHeader,
footer: defaultFooter,
enablePullUp: true,
enablePullDown: true,
controller: refreshController,
child: buildListView(),
onRefresh: (){
print("下拉刷新回调");
Future.delayed(new Duration(microseconds: 3000),(){
refreshController.refreshCompleted();
});
},
onLoading: (){
print("上拉刷新回调");
Future.delayed(new Duration(microseconds: 3000),(){
refreshController.loadComplete();
});
},
)
);
}
Widget buildListView(){
return ListView.builder(
itemBuilder: (context,index){
return Container(
margin: EdgeInsets.all(5),
padding: EdgeInsets.all(5),
color: Colors.grey[300],
height: 88,
child: Text(list[index]),
);
},
itemCount: list.length ,
);
}
}