Route<T> class

An abstraction for an entry managed by a Navigator.

This class defines an abstract interface between the navigator and the "routes" that are pushed on and popped off the navigator. Most routes have visual affordances, which they place in the navigators Overlay using one or more OverlayEntry objects.

See Navigator for more explanation of how to use a Route with navigation, including code examples.

See MaterialPageRoute for a route that replaces the entire screen with a platform-adaptive transition.



Route({RouteSettings settings })
Initialize the Route. [...]


currentResult → T
When this route is popped (see Navigator.pop) if the result isn't specified or if it's null, this value will be used instead.
isActive bool
Whether this route is on the navigator. [...]
isCurrent bool
Whether this route is the top-most route on the navigator. [...]
isFirst bool
Whether this route is the bottom-most route on the navigator. [...]
The navigator that the route is in, if any.
overlayEntries List<OverlayEntry>
The overlay entries for this route.
popped Future<T>
A future that completes when this route is popped off the navigator. [...]
settings RouteSettings
The settings for this route. [...]
willHandlePopInternally bool
Whether calling didPop would return false.
hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


changedExternalState() → void
Called whenever the Navigator has its widget rebuilt, to indicate that the route may wish to rebuild as well. [...]
@mustCallSuper, @protected
changedInternalState() → void
Called whenever the internal state of the route has changed. [...]
@mustCallSuper, @protected
didChangeNext(Route nextRoute) → void
This route's next route has changed to the given new route. This is called on a route whenever the next route changes for any reason, so long as it is in the history, including when a route is first added to a Navigator (e.g. by Navigator.push), except for cases when didPopNext would be called. nextRoute will be null if there's no next route.
@mustCallSuper, @protected
didChangePrevious(Route previousRoute) → void
This route's previous route has changed to the given new route. This is called on a route whenever the previous route changes for any reason, so long as it is in the history. previousRoute will be null if there's no previous route.
@mustCallSuper, @protected
didComplete(T result) → void
The route was popped or is otherwise being removed somewhat gracefully. [...]
@mustCallSuper, @protected
didPop(T result) bool
A request was made to pop this route. If the route can handle it internally (e.g. because it has its own stack of internal state) then return false, otherwise return true (by return the value of calling super.didPop). Returning false will prevent the default behavior of NavigatorState.pop. [...]
@mustCallSuper, @protected
didPopNext(Route nextRoute) → void
The given route, which was above this one, has been popped off the navigator.
@mustCallSuper, @protected
didPush() TickerFuture
Called after install when the route is pushed onto the navigator. [...]
didReplace(Route oldRoute) → void
Called after install when the route replaced another in the navigator. [...]
@mustCallSuper, @protected
dispose() → void
The route should remove its overlays and free any other resources. [...]
@mustCallSuper, @protected
install(OverlayEntry insertionPoint) → void
Called when the route is inserted into the navigator. [...]
@mustCallSuper, @protected
willPop() Future<RoutePopDisposition>
Returns false if this route wants to veto a Navigator.pop. This method is called by Navigator.maybePop. [...]
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
toString() String
Returns a string representation of this object.


operator ==(dynamic other) bool
The equality operator. [...]