1
0
mirror of https://github.com/flutter/samples.git synced 2026-04-05 03:01:19 +00:00

Update Navigation and Routing sample (#851)

* Add duration parameter to FadeTransitionPage

* Use didChangeDependencies instead of didUpdateWidget

* Don't notify listeners if the path hasn't changed

* Update navigation sample WIP

* Use Link and RouteStateScope in settings screen

* update README

* use named parameters for Library.addBook()

* Make _handleAuthStateChanged synchronous

* add missing copyright headers

* Address code review comments

* Address code review comments
This commit is contained in:
John Ryan
2021-07-12 14:22:53 -07:00
committed by GitHub
parent d3c4645a42
commit 35f1670098
17 changed files with 298 additions and 78 deletions

View File

@@ -6,9 +6,13 @@ import 'package:flutter/material.dart';
class FadeTransitionPage<T> extends Page<T> {
final Widget child;
final Duration duration;
const FadeTransitionPage({LocalKey? key, required this.child})
: super(key: key);
const FadeTransitionPage({
LocalKey? key,
required this.child,
this.duration = const Duration(milliseconds: 300),
}) : super(key: key);
@override
Route<T> createRoute(BuildContext context) {
@@ -17,10 +21,9 @@ class FadeTransitionPage<T> extends Page<T> {
}
class PageBasedFadeTransitionRoute<T> extends PageRoute<T> {
PageBasedFadeTransitionRoute(Page page)
: super(
settings: page,
);
final FadeTransitionPage<T> page;
PageBasedFadeTransitionRoute(this.page) : super(settings: page);
@override
Color? get barrierColor => null;
@@ -29,7 +32,7 @@ class PageBasedFadeTransitionRoute<T> extends PageRoute<T> {
String? get barrierLabel => null;
@override
Duration get transitionDuration => const Duration(milliseconds: 300);
Duration get transitionDuration => page.duration;
@override
bool get maintainState => true;