@@ -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