58 lines
1.5 KiB
Dart
58 lines
1.5 KiB
Dart
|
import 'package:flutter/cupertino.dart';
|
||
|
import 'package:pull_to_refresh/pull_to_refresh.dart';
|
||
|
import 'package:sk_base_mobile/util/screen_adaper_util.dart';
|
||
|
|
||
|
class RefreshFooter extends StatefulWidget {
|
||
|
const RefreshFooter({Key? key}) : super(key: key);
|
||
|
|
||
|
@override
|
||
|
State<RefreshFooter> createState() => _RefreshFooterState();
|
||
|
}
|
||
|
|
||
|
class _RefreshFooterState extends State<RefreshFooter>
|
||
|
with SingleTickerProviderStateMixin {
|
||
|
@override
|
||
|
void initState() {
|
||
|
super.initState();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
void dispose() {
|
||
|
super.dispose();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return buildBody();
|
||
|
}
|
||
|
|
||
|
Widget buildBody() {
|
||
|
TextStyle style = TextStyle(fontSize: ScreenAdaper.sp(18));
|
||
|
return CustomFooter(
|
||
|
builder: (BuildContext context, LoadStatus? status) {
|
||
|
Widget body;
|
||
|
if (status == LoadStatus.idle) {
|
||
|
body = const Text("Pull up to get latest messages");
|
||
|
} else if (status == LoadStatus.loading) {
|
||
|
body = const SizedBox(child: const CupertinoActivityIndicator());
|
||
|
} else if (status == LoadStatus.failed) {
|
||
|
body = Text(
|
||
|
"Load failed, please try again",
|
||
|
style: style,
|
||
|
);
|
||
|
} else if (status == LoadStatus.canLoading) {
|
||
|
body = const CupertinoActivityIndicator(
|
||
|
animating: false,
|
||
|
);
|
||
|
} else {
|
||
|
body = const SizedBox();
|
||
|
}
|
||
|
return SizedBox(
|
||
|
height: ScreenAdaper.height(20),
|
||
|
child: Center(child: body),
|
||
|
);
|
||
|
},
|
||
|
);
|
||
|
}
|
||
|
}
|