RouteObserver<R extends Route> class

A Navigator observer that notifies RouteAwares of changes to the state of their Route.

RouteObserver informs subscribers whenever a route of type R is pushed on top of their own route of type R or popped from it. This is for example useful to keep track of page transitions, e.g. a RouteObserver<PageRoute> will inform subscribed RouteAwares whenever the user navigates away from the current page route to another page route.

To be informed about route changes of any type, consider instantiating a RouteObserver<Route>.

Type arguments

When using more aggressive lints, in particular lints such as always_specify_types, the Dart analyzer will require that certain types be given with their type arguments. Since the Route class and its subclasses have a type argument, this includes the arguments passed to this class. Consider using dynamic to specify the entire class of routes rather than only specific subtypes. For example, to watch for all ModalRoute variants, the RouteObserver<ModalRoute<dynamic>> type may be used.

This example demonstrates how to implement a RouteObserver that notifies RouteAware widget of changes to the state of their Route.

To create a local project with this code sample, run:
flutter create --sample=widgets.RouteObserver.1 mysample

See also:





hashCode int
The hash code for this object.
no setterinherited
The navigator that the observer is observing, if any.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited


debugObservingRoute(R route) bool
Whether this observer is managing changes for the specified route.
didPop(Route route, Route? previousRoute) → void
The Navigator popped route.
didPush(Route route, Route? previousRoute) → void
The Navigator pushed route.
didRemove(Route route, Route? previousRoute) → void
The Navigator removed route.
didReplace({Route? newRoute, Route? oldRoute}) → void
The Navigator replaced oldRoute with newRoute.
didStartUserGesture(Route route, Route? previousRoute) → void
The Navigator's routes are being moved by a user gesture.
didStopUserGesture() → void
User gesture is no longer controlling the Navigator.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
subscribe(RouteAware routeAware, R route) → void
Subscribe routeAware to be informed about changes to route.
toString() String
A string representation of this object.
unsubscribe(RouteAware routeAware) → void
Unsubscribe routeAware.


operator ==(Object other) bool
The equality operator.