@@ -87,6 +87,7 @@ class _NuvigatorInner<T extends INuRouter> extends Navigator {
8787 this .debug = false ,
8888 this .inheritableObservers = const [],
8989 this .shouldPopRoot = false ,
90+ this .builder,
9091 }) : super (
9192 observers: [
9293 HeroController (),
@@ -123,6 +124,7 @@ class _NuvigatorInner<T extends INuRouter> extends Navigator {
123124 final ScreenType screenType;
124125 final WrapperFn ? wrapper;
125126 final List <ObserverBuilder > inheritableObservers;
127+ final TransitionBuilder ? builder;
126128
127129 @override
128130 NavigatorState createState () {
@@ -493,7 +495,11 @@ class NuvigatorState<T extends INuRouter> extends NavigatorState
493495 child: child,
494496 );
495497 }
496- return child;
498+ final builder = widget.builder;
499+
500+ return builder != null
501+ ? Builder (builder: (context) => builder (context, child))
502+ : child;
497503 }
498504}
499505
@@ -512,6 +518,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
512518 this .inheritableObservers = const [],
513519 this .shouldPopRoot = false ,
514520 this .shouldRebuild,
521+ this .builder,
515522 }) : _innerKey = key,
516523 assert (router != null );
517524
@@ -551,6 +558,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
551558 final Key ? _innerKey;
552559 final Map <String , dynamic >? initialArguments;
553560 final ShouldRebuildFn ? shouldRebuild;
561+ final TransitionBuilder ? builder;
554562
555563 /// Maybe fetches a [NuvigatorState] from the current BuildContext.
556564 static NuvigatorState <T >? maybeOf <T extends INuRouter >(
@@ -604,6 +612,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
604612 router: router as NuRouter ,
605613 shouldRebuild: shouldRebuild,
606614 builder: (moduleRouter) => _NuvigatorInner (
615+ builder: builder,
607616 router: moduleRouter,
608617 debug: debug,
609618 inheritableObservers: inheritableObservers,
0 commit comments