MaterialPageRoute class - material library

A modal route that replaces the entire screen with a platform-adaptive transition.

For Android, the entrance transition for the page zooms in and fades in while the exiting page zooms out and fades out. The exit transition is similar, but in reverse.

For iOS, the page slides in from the right and exits in reverse. The page also shifts to the left in parallax when another page enters to cover it. (These directions are flipped in environments with a right-to-left reading direction.)

By default, when a modal route is replaced by another, the previous route remains in memory. To free all the resources when this is not necessary, set maintainState to false.

The fullscreenDialog property specifies whether the incoming route is a fullscreen modal dialog. On iOS, those routes animate from the bottom to the top rather than horizontally.

If barrierDismissible is true, then pressing the escape key on the keyboard will cause the current route to be popped with null as the value.

The type T specifies the return type of the route which can be supplied as the route is popped from the stack via Navigator.pop by providing the optional result argument.

See also:

Inheritance
Mixed-in types

Constructors

Construct a MaterialPageRoute whose contents are defined by builder.

Properties

allowSnapshotting bool
Whether the route transition will prefer to animate a snapshot of the entering/exiting routes.

finalinherited

animation Animation<double>?
The animation that drives the route's transition and the previous route's forward transition.

no setterinherited

barrierColor Color?
The color to use for the modal barrier. If this is null, the barrier will be transparent.

no setterinherited

barrierCurve Curve
The curve that is used for animating the modal barrier in and out.

no setterinherited

barrierDismissible bool
Whether you can dismiss this route by tapping the modal barrier.

no setterinherited

barrierLabel String?
The semantic label used for a dismissible barrier.

no setterinherited

builder WidgetBuilder
Builds the primary contents of the route.

final

canPop bool
Whether this route can be popped.

no setterinherited

completed Future<T?>
This future completes only once the transition itself has finished, after the overlay entries have been removed from the navigator's overlay.

no setterinherited

controller AnimationController?
The animation controller that the route uses to drive the transitions.

no setterinherited

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.

no setterinherited

debugLabel String
A short description of this route useful for debugging.

no setteroverride

delegatedTransition DelegatedTransitionBuilder?
The DelegatedTransitionBuilder provided to the route below this one in the navigation stack.

no setterinherited

directionalTraversalEdgeBehavior TraversalEdgeBehavior?
Controls the directional transfer of focus beyond the first and the last items of a FocusScopeNode.

finalinherited

filter ImageFilter?
The filter to add to the barrier.

finalinherited

finishedWhenPopped bool
Controls whether didPop calls NavigatorState.finalizeRoute.

no setterinherited

fullscreenDialog bool
Whether this page route is a full-screen dialog.

finalinherited

hasActiveRouteBelow bool
Whether there is at least one active route underneath this route.

no setterinherited

hashCode int
The hash code for this object.

no setterinherited

hasScopedWillPopCallback bool
True if one or more WillPopCallback callbacks exist.

no setterinherited

impliesAppBarDismissal bool
Whether an AppBar in the route should automatically add a back button or close button.

no setterinherited

isActive bool
Whether this route is on the navigator.

no setterinherited

isCurrent bool
Whether this route is the top-most route on the navigator.

no setterinherited

isFirst bool
Whether this route is the bottom-most active route on the navigator.

no setterinherited

maintainState bool
Whether the route should remain in memory when it is inactive.

final

The navigator that the route is in, if any.

no setterinherited

offstage bool
Whether this route is currently offstage.

getter/setter pairinherited

opaque bool
Whether the route obscures previous routes when the transition is complete.

no setterinherited

overlayEntries List<OverlayEntry>
The overlay entries of this route.

no setterinherited

popDisposition RoutePopDisposition
Returns RoutePopDisposition.doNotPop if any of the PopEntry instances registered with registerPopEntry have PopEntry.canPopNotifier set to false.

no setterinherited

popGestureEnabled bool
Whether a pop gesture can be started by the user for this route.

no setterinherited

popGestureInProgress bool
True if a back gesture (iOS-style back swipe or Android predictive back) is currently underway for this route.

no setterinherited

popped Future<T?>
A future that completes when this route is popped off the navigator.

no setterinherited

receivedTransition DelegatedTransitionBuilder?
The DelegatedTransitionBuilder received from the route above this one in the navigation stack.

getter/setter pairinherited

requestFocus bool
When the route state is updated, request focus if the current route is at the top.

no setterinherited

restorationScopeId ValueListenable<String?>
The restoration scope ID to be used for the RestorationScope surrounding this route.

no setterinherited

reverseTransitionDuration Duration
The duration the transition going in reverse.

no setterinherited

runtimeType Type
A representation of the runtime type of the object.

no setterinherited

secondaryAnimation Animation<double>?
The animation for the route being pushed on top of this route. This animation lets this route coordinate with the entrance and exit transition of route pushed on top of this route.

no setterinherited

semanticsDismissible bool
Whether the semantics of the modal barrier are included in the semantics tree.

no setterinherited

settings RouteSettings
The settings for this route.

no setterinherited

subtreeContext BuildContext?
The build context for the subtree containing the primary content of this route.

no setterinherited

transitionDuration Duration
The duration the transition going forwards.

no setterinherited

traversalEdgeBehavior TraversalEdgeBehavior?
Controls the transfer of focus beyond the first and the last items of a FocusScopeNode.

finalinherited

willDisposeAnimationController bool
Whether to takeover the controller created by createAnimationController.

getter/setter pairinherited

willHandlePopInternally bool
Whether calling didPop would return false.

no setterinherited

Methods

addLocalHistoryEntry(LocalHistoryEntry entry) → void
Adds a local history entry to this route.

inherited

addScopedWillPopCallback(WillPopCallback callback) → void
Enables this route to veto attempts by the user to dismiss it.

inherited

buildContent(BuildContext context) Widget
Builds the primary contents of the route.

override

buildModalBarrier() Widget
Build the barrier for this ModalRoute, subclasses can override this method to create their own barrier with customized features such as color or accessibility focus size.

inherited

buildPage(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) Widget
Override this method to build the primary content of this route.

inherited

buildTransitions(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) Widget
Override this method to wrap the child with one or more transition widgets that define how the route arrives on and leaves the screen.

inherited

canTransitionFrom(TransitionRoute previousRoute) bool
Returns true if previousRoute should animate when this route is pushed on top of it or when then this route is popped off of it.

inherited

canTransitionTo(TransitionRoute nextRoute) bool
Returns true if this route supports a transition animation that runs when nextRoute is pushed on top of it or when nextRoute is popped off of it.

inherited

changedExternalState() → void
Called whenever the Navigator has updated in some manner that might affect routes, to indicate that the route may wish to rebuild as well.

inherited

changedInternalState() → void
Called whenever the internal state of the route has changed.

inherited

createAnimation() Animation<double>
Called to create the animation that exposes the current progress of the transition controlled by the animation controller created by createAnimationController().

inherited

createAnimationController() AnimationController
Called to create the animation controller that will drive the transitions to this route from the previous one, and back to the previous route from this one.

inherited

createOverlayEntries() Iterable<OverlayEntry>
Subclasses should override this getter to return the builders for the overlay.

inherited

createSimulation({required bool forward}) Simulation?
Creates the simulation that drives the transition animation for this route.

inherited

debugTransitionCompleted() bool
Returns true if the transition has completed.

inherited

didAdd() → void
Called after install when the route is added to the navigator.

inherited

didChangeNext(Route? nextRoute) → void
This route's next route has changed to the given new route.

inherited

didChangePrevious(Route? previousRoute) → void
This route's previous route has changed to the given new route.

inherited

didComplete(T? result) → void
The route was popped or is otherwise being removed somewhat gracefully.

inherited

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 returning the value of calling super.didPop). Returning false will prevent the default behavior of NavigatorState.pop.

inherited

didPopNext(Route nextRoute) → void
The given route, which was above this one, has been popped off the navigator.

inherited

didPush() TickerFuture
Called after install when the route is pushed onto the navigator.

inherited

didReplace(Route? oldRoute) → void
Called after install when the route replaced another in the navigator.

inherited

dispose() → void
Discards any resources used by the object.

inherited

handleCancelBackGesture() → void
Handles a predictive back gesture ending in cancellation.

inherited

handleCommitBackGesture() → void
Handles a predictive back gesture ending successfully.

inherited

handleStartBackGesture({double progress = 0.0}) → void
Handles a predictive back gesture starting.

inherited

handleUpdateBackGestureProgress({required double progress}) → void
Handles a predictive back gesture updating as the user drags across the screen.

inherited

install() → void
Called when the route is inserted into the navigator.

inherited

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.

inherited

onPopInvoked(bool didPop) → void
Called after a route pop was handled.

inherited

onPopInvokedWithResult(bool didPop, T? result) → void
Called after a route pop was handled.

inherited

registerPopEntry(PopEntry<Object?> popEntry) → void
Registers the existence of a PopEntry in the route.

inherited

removeLocalHistoryEntry(LocalHistoryEntry entry) → void
Remove a local history entry from this route.

inherited

removeScopedWillPopCallback(WillPopCallback callback) → void
Remove one of the callbacks run by willPop.

inherited

setState(VoidCallback fn) → void
Schedule a call to buildTransitions.

inherited

toString() String
A string representation of this object.

inherited

unregisterPopEntry(PopEntry<Object?> popEntry) → void
Unregisters a PopEntry in the route's widget subtree.

inherited

willPop() Future<RoutePopDisposition>
Returns RoutePopDisposition.doNotPop if any of callbacks added with addScopedWillPopCallback returns either false or null. If they all return true, the base Route.willPop's result will be returned. The callbacks will be called in the order they were added, and will only be called if all previous callbacks returned true.

inherited

Operators

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

inherited