Browse Source

[fix]修复toast下一帧的问题

zk 1 year ago
parent
commit
008340f3da
3 changed files with 16 additions and 9 deletions
  1. 1 1
      lib/main.dart
  2. 6 5
      lib/module/store/controller.dart
  3. 9 3
      lib/utils/toast_util.dart

+ 1 - 1
lib/main.dart

@@ -44,7 +44,7 @@ void main() async {
 
 void checkEnv() {
   if (!Constants.isProdEnv()) {
-    ToastUtil.showToast('不是正式环境!!!');
+    ToastUtil.showToast('不是正式环境!!!', addPostFrame: true);
   }
 }
 

+ 6 - 5
lib/module/store/controller.dart

@@ -175,15 +175,16 @@ class StoreController extends BaseController implements PaymentStatusCallback {
 
   void errorPayToast(int errno) {
     if (errno == AgilePayCode.payCodeNotSupport) {
-      ToastUtil.showToast(StringName.storePayNotSupport.tr);
+      ToastUtil.showToast(StringName.storePayNotSupport.tr, addPostFrame: true);
     } else if (errno == AgilePayCode.payCodeCancelError) {
-      ToastUtil.showToast(StringName.storePayUserCancel.tr);
+      ToastUtil.showToast(StringName.storePayUserCancel.tr, addPostFrame: true);
     } else if (errno == AgilePayCode.payCodeWxEnvError) {
-      ToastUtil.showToast(StringName.storePayWxEvnError.tr);
+      ToastUtil.showToast(StringName.storePayWxEvnError.tr, addPostFrame: true);
     } else if (errno == AgilePayCode.payCodeNotConnectStore) {
-      ToastUtil.showToast(StringName.storePayNotConnectstore.tr);
+      ToastUtil.showToast(StringName.storePayNotConnectstore.tr,
+          addPostFrame: true);
     } else {
-      ToastUtil.showToast(StringName.storePayError.tr);
+      ToastUtil.showToast(StringName.storePayError.tr, addPostFrame: true);
     }
   }
 

+ 9 - 3
lib/utils/toast_util.dart

@@ -6,12 +6,18 @@ class ToastUtil {
 
   static void showToast(String? msg,
       {Duration? displayTime,
-      SmartToastType? displayType = SmartToastType.normal}) {
+      SmartToastType? displayType = SmartToastType.normal,
+      bool? addPostFrame}) {
     if (msg != null) {
-      SchedulerBinding.instance.addPostFrameCallback((_) {
+      if (addPostFrame == true) {
+        SchedulerBinding.instance.addPostFrameCallback((_) {
+          SmartDialog.showToast(msg,
+              displayType: displayType, displayTime: displayTime);
+        });
+      } else {
         SmartDialog.showToast(msg,
             displayType: displayType, displayTime: displayTime);
-      });
+      }
     }
   }
 }