我已經從flutter_spinkit包中實作了一個加載器,當用戶通過導航抽屜導航到另一個頁面時,加載器出現,問題是當用戶單擊導航到另一個頁面的按鈕時,加載器出現并卡住而沒有關閉或導航,這里是代碼:
onTap: () async {
//Close the navigation Drawer
Navigator.pop(context);
//Show dialog that contains the loader
showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return WillPopScope(
onWillPop: () async {
return false;
},
child: SpinKitCircle(
color: Colors.purple,
size: 50.0,
),
);
},
);
//Close the Loader Dialog after 3 seconds (it doesn't close)
await Future.delayed(Duration(seconds: 3), () {
Navigator.pop(context);
});
//Navigate to the next page
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const MyChallenges(),
),
);
},
控制臺顯示:
E/flutter ( 6263): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Null check operator used on a null value
E/flutter ( 6263): #0 StatefulElement.state
package:flutter/…/widgets/framework.dart:4926
E/flutter ( 6263): #1 Navigator.of
package:flutter/…/widgets/navigator.dart:2542
E/flutter ( 6263): #2 Navigator.pop
package:flutter/…/widgets/navigator.dart:2432
E/flutter ( 6263): #3 _NavigationDrawerState.buildMenuItems.<anonymous closure>.<anonymous closure>
package:athaddakapp/screens/navigation_drawer.dart:123
E/flutter ( 6263): #4 new Future.delayed.<anonymous closure> (dart:async/future.dart:423:39)
E/flutter ( 6263): #5 _rootRun (dart:async/zone.dart:1418:47)
E/flutter ( 6263): #6 _CustomZone.run (dart:async/zone.dart:1328:19)
E/flutter ( 6263): #7 _CustomZone.runGuarded (dart:async/zone.dart:1236:7)
E/flutter ( 6263): #8 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1276:23)
E/flutter ( 6263): #9 _rootRun (dart:async/zone.dart:1426:13)
E/flutter ( 6263): #10 _CustomZone.run (dart:async/zone.dart:1328:19)
E/flutter ( 6263): #11 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1260:23)
E/flutter ( 6263): #12 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
E/flutter ( 6263): #13 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter ( 6263): #14 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter ( 6263): #15 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
裝載機保持負載并且不導航,不欣賞任何想法。謝謝
uj5u.com熱心網友回復:
嘗試在 main 中使用全域鍵作為 showDialog 和 Navigator.pop 中的背景關系,用于關閉對話框
uj5u.com熱心網友回復:
使用主小部件context進行導航。
只需更改showDialog背景關系名稱
builder: (BuildContext dialogContext) {或者builder: (_) {
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512869.html
標籤:扑镖
