@@ -19,6 +19,7 @@ class YYDialog {
1919  BoxConstraints  constraints; //弹窗约束 
2020  Function (Widget  child, Animation <double > animation) animatedFunc; //弹窗出现的动画 
2121  bool  barrierDismissible =  true ; //是否点击弹出外部消失 
22+   bool  useRootNavigator =  true ; // see also Navigator.of() 
2223  EdgeInsets  margin =  EdgeInsets .all (0.0 ); //弹窗布局的外边距 
2324
2425  Decoration  decoration; //弹窗内的装饰,与backgroundColor和borderRadius互斥 
@@ -267,6 +268,7 @@ class YYDialog {
267268      barrierColor:  barrierColor,
268269      animatedFunc:  animatedFunc,
269270      barrierDismissible:  barrierDismissible,
271+       useRootNavigator:  useRootNavigator,
270272      duration:  duration,
271273      child:  Padding (
272274        padding:  margin,
@@ -314,7 +316,7 @@ class YYDialog {
314316
315317  void  dismiss () {
316318    if  (_isShowing) {
317-       Navigator .of (context, rootNavigator:  true ).pop ();
319+       Navigator .of (context, rootNavigator:  useRootNavigator ).pop ();
318320    }
319321  }
320322
@@ -425,6 +427,7 @@ class CustomDialog {
425427  Color  _barrierColor;
426428  RouteTransitionsBuilder  _transitionsBuilder;
427429  bool  _barrierDismissible;
430+   bool  _useRootNavigator;
428431  Gravity  _gravity;
429432  bool  _gravityAnimationEnable;
430433  Function  _animatedFunc;
@@ -439,6 +442,7 @@ class CustomDialog {
439442    bool  gravityAnimationEnable,
440443    Function  animatedFunc,
441444    bool  barrierDismissible,
445+     bool  useRootNavigator,
442446  })  :  _child =  child,
443447        _context =  context,
444448        _gravity =  gravity,
@@ -447,8 +451,9 @@ class CustomDialog {
447451        _barrierColor =  barrierColor,
448452        _animatedFunc =  animatedFunc,
449453        _transitionsBuilder =  transitionsBuilder,
450-         _barrierDismissible =  barrierDismissible {
451-     this .show ();
454+         _barrierDismissible =  barrierDismissible,
455+         _useRootNavigator =  useRootNavigator {
456+       this .show ();
452457  }
453458
454459  show () {
@@ -461,6 +466,7 @@ class CustomDialog {
461466      context:  _context,
462467      barrierColor:  _barrierColor ??  Colors .black.withOpacity (.3 ),
463468      barrierDismissible:  _barrierDismissible ??  true ,
469+       useRootNavigator:  _useRootNavigator ??  true ,
464470      barrierLabel:  "" ,
465471      transitionDuration:  _duration ??  Duration (milliseconds:  250 ),
466472      transitionBuilder:  _transitionsBuilder ??  _buildMaterialDialogTransitions,
0 commit comments