showUniqueMessage static method

dynamic showUniqueMessage(
  1. String message, {
  2. Duration duration = const Duration(seconds: 1),
  3. bool needCancelOld = false,
})

Implementation

static showUniqueMessage(
  String message, {
  Duration duration = const Duration(seconds: 1),
  bool needCancelOld = false, // 是否要取消旧的,避免视图一直叠加
}) {
  if (timeoutToastShowing == true) {
    return;
  }

  if (timeoutToast == null && OverlayInit.contextGetBlock != null) {
    timeoutToast = FToast();
    BuildContext? context = OverlayInit.contextGetBlock!();
    if (context == null) {
      return;
    }
    timeoutToast!.init(context);
  }

  Widget toast = Container(
    padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 12.0),
    decoration: BoxDecoration(
      borderRadius: BorderRadius.circular(25.0),
      color: Colors.greenAccent,
    ),
    child: Row(
      mainAxisSize: MainAxisSize.min,
      children: [
        Icon(Icons.check),
        SizedBox(
          width: 12.0,
        ),
        Text("This is a Custom Toast"),
      ],
    ),
  );

  timeoutToast!.showToast(
    child: toast,
    gravity: ToastGravity.CENTER,
    toastDuration: duration,
  );
  timeoutToastShowing = true;
  Future.delayed(duration).then((value) {
    timeoutToastShowing = false;
  });
}