toast.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /// 提示工具:统一封装 fluttertoast + flutter_easyloading
  2. library;
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter_easyloading/flutter_easyloading.dart';
  5. import 'package:fluttertoast/fluttertoast.dart';
  6. /// 显示成功提示
  7. void showSuccessMessage(String message) {
  8. try {
  9. Fluttertoast.showToast(
  10. msg: message,
  11. toastLength: Toast.LENGTH_SHORT,
  12. gravity: ToastGravity.CENTER,
  13. );
  14. } catch (_) {
  15. // Web 等无原生实现时静默降级,避免未捕获异常
  16. }
  17. }
  18. /// 显示普通错误提示
  19. void showErrorMessage(String message) {
  20. try {
  21. Fluttertoast.showToast(
  22. msg: message,
  23. toastLength: Toast.LENGTH_LONG,
  24. gravity: ToastGravity.CENTER,
  25. textColor: const Color.fromARGB(255, 255, 200, 200),
  26. );
  27. } catch (_) {
  28. // Web 等无原生实现时静默降级,避免未捕获异常
  29. }
  30. }
  31. /// 显示增强错误提示(带异常对象,仅 debug 输出详情)
  32. void showErrorMessageEnhanced(Object error) {
  33. // 在 debug 模式打印堆栈便于排查
  34. assert(() {
  35. debugPrint('[paydemo] error: $error');
  36. return true;
  37. }());
  38. showErrorMessage(error.toString());
  39. }
  40. /// 打开加载遮罩
  41. void startLoading({String? status}) {
  42. EasyLoading.show(status: status ?? '支付处理中...');
  43. }
  44. /// 关闭加载遮罩
  45. void stopLoading() {
  46. EasyLoading.dismiss();
  47. }