show static method

Future<OverlayEntryManger?> show(
  1. String msg, {
  2. BuildContext? context,
  3. BuildToastStyle? buildToastStyle,
  4. ToastPosition? position,
  5. 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;
}