show static method
Future<OverlayEntryManger?>
show(
- String msg, {
- BuildContext? context,
- BuildToastStyle? buildToastStyle,
- ToastPosition? position,
- int? showTime,
显示一个吐司
Implementation
static Future<OverlayEntryManger?> show(
String msg, {
BuildContext? context,
BuildToastStyle? buildToastStyle,
ToastPosition? position,
int? showTime,
}) async {
///防止多次弹出,外部设置间隔时间 默认2秒
if (_instance._startedTime != null &&
DateTime.now().difference(_instance._startedTime!).inMilliseconds <
_instance.intervalTime) {
return null;
}
buildToastStyle = buildToastStyle ?? _instance.globalBuildToastStyle;
_instance._startedTime = DateTime.now();
var _overlayEntry = OverlayEntry(
builder: (BuildContext context) => Positioned(
top: _calToastPosition(
context, position ?? _instance.globalPosition),
child: Container(
alignment: Alignment.center,
width: MediaQuery.of(context).size.width,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 40.0),
child: buildToastStyle?.call(context, msg))),
));
///获取OverlayState
if (context == null) {
///创建和显示顶层OverlayEntry
navigatorState.currentState?.overlay?.insert(_overlayEntry);
} else {
var overlayState = Overlay.of(context);
overlayState?.insert(_overlayEntry);
}
var manger = OverlayEntryManger(_overlayEntry);
_overlayEntryMangers.add(manger);
manger
.start(showTime ?? _instance.showTime, _instance._startedTime!)
.then((value) {
_overlayEntryMangers.remove(value);
});
return manger;
}