import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; // 这个可以不用, 该依赖主要做适配
import 'package:loading_indicator_view/loading_indicator_view.dart'; // 添加 loading_indicator_view 依赖
class Loading {
OverlayEntry _overlayEntry;
show(BuildContext context, {String message}) {
_cancelToast();
_overlayEntry = OverlayEntry(builder: (BuildContext context) {
return Material(
color: Colors.transparent,
child: SafeArea(
child: Center(
child: Container(
width: ScreenUtil().setSp(100.25),
height: ScreenUtil().setSp(100.25),
child: Stack(
children: [
Align(
alignment: Alignment(0, 0),
child: Opacity(
opacity: 0.5,
child: Container(
height: 100,
width: 100,
decoration: BoxDecoration(color: Colors.black, borderRadius: BorderRadius.circular(5.0)),
),
),
),
Align(alignment: Alignment(0, -0.3), child: LineSpinFadeLoaderIndicator()),
Align(
// alignment: Alignment(0, 1),
alignment: Alignment(0, 0.7),
child: Text(message, style: TextStyle(color: Colors.white, fontSize: 13, decoration: TextDecoration.none)),
)
],
),
),
),
),
);
});
Overlay.of(context).insert(_overlayEntry);
}
cancel() {
_cancelToast();
}
// 移除Toast
_cancelToast() {
_overlayEntry?.remove();
_overlayEntry = null;
}
}
flutter 自定义load
最新推荐文章于 2025-03-09 19:29:06 发布