WallPaper_FSX_Flutter/lib/common/components/refresh/base_easyrefresh.dart
fengshengxiong 9caadfb09a 1.按照UI图修改
2.完善其他功能
2024-05-17 17:02:22 +08:00

59 lines
1.5 KiB
Dart

// Author: fengshengxiong
// Date: 2024/5/7
// Description: 下拉刷新、上拉加载
import 'dart:async';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:now_wallpaper/common/components/view_state_widget.dart';
class BaseEasyRefresh extends StatelessWidget {
const BaseEasyRefresh({
super.key,
required this.controller,
this.header,
this.footer,
this.onRefresh,
this.onLoad,
this.refreshOnStart = false,
required this.viewState,
required this.child,
this.width,
this.height,
});
final EasyRefreshController controller;
final Header? header;
final Footer? footer;
final FutureOr Function()? onRefresh;
final FutureOr Function()? onLoad;
final bool refreshOnStart;
final ViewState viewState;
final Widget child;
final double? width;
final double? height;
@override
Widget build(BuildContext context) {
return EasyRefresh(
controller: controller,
header: header ?? const ClassicHeader(),
footer: footer ?? const ClassicFooter(),
onRefresh: onRefresh,
onLoad: onLoad,
refreshOnStart: refreshOnStart,
child: viewState == ViewState.normal ? child : SingleChildScrollView(
child: SizedBox(
width: width ?? 1.sw,
height: height ?? 300.h,
child: ViewStateWidget(
viewState: viewState,
child: child,
),
),
),
);
}
}