|
|
|
# Navigation and Routing sample code
|
|
|
|
|
|
|
|
Sample code for [Learning Flutter's New Navigation and Routing System][article],
|
|
|
|
an article explaining the Router widget and it's associated classes.
|
|
|
|
|
|
|
|
## Samples
|
|
|
|
|
|
|
|
**Navigator samples**
|
|
|
|
|
|
|
|
* [navigator/anonymous_routes.dart](lib/navigator/anonymous_routes.dart) -
|
|
|
|
Shows how to use a Navigator to push and pop anonymous routes (e.g.
|
|
|
|
MaterialPageRoute)
|
|
|
|
* [navigator/named_routes.dart](lib/navigator/named_routes.dart) - Shows
|
|
|
|
how to use define named routes via the `routes` parameter on MaterialApp, and
|
|
|
|
navigate using Navigator.pushNamed
|
|
|
|
* [navigator/on_generate_route.dart](lib/navigator/on_generate_route.dart) -
|
|
|
|
Shows how to handle arbitrary named routes using the `onGenerateRoute`
|
|
|
|
callback defined in the `MaterialApp` constructor.
|
|
|
|
|
|
|
|
**Router samples**
|
|
|
|
|
|
|
|
* [router/pages.dart](lib/router/pages.dart) - Shows how to define a list of
|
|
|
|
[Page] objects on Navigator declaratively.
|
|
|
|
* [router/router.dart](lib/router/router.dart) - Full sample that shows a custom
|
|
|
|
RouteInformationParser and RouterDelegate parsing named routes and
|
|
|
|
declaratively building the stack of pages for the Navigator.
|
|
|
|
|
|
|
|
**Advanced**
|
|
|
|
|
|
|
|
* [router_advanced/nested_router.dart](lib/router_advanced/nested_router.dart) -
|
|
|
|
Shows two [RouterDelegate], one nested within the other. A
|
|
|
|
[BottomNavigationBar] can be used to select the route of the outer
|
|
|
|
RouterDelegate, and additional routes can be pushed onto the inner
|
|
|
|
RouterDelegate / Navigator.
|
|
|
|
* [router_advanced/transition_delegate.dart](lib/router_advanced/transition_delegate.dart)
|
|
|
|
Shows how a custom TransitionDelegate can be used to customized when
|
|
|
|
transition animations are shown.
|
|
|
|
|
|
|
|
## Running
|
|
|
|
|
|
|
|
Each file in this project is an entrypoint. To run, specify the filename of
|
|
|
|
the sample:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
flutter run lib/router/router.dart
|
|
|
|
```
|
|
|
|
[article]: https://medium.com/flutter/learning-flutters-new-navigation-and-routing-system-7c9068155ade
|