1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-09 06:18:49 +00:00

Migrate animations to go_router (#1521)

This commit is contained in:
Miguel Beltran
2022-12-13 09:26:09 +01:00
committed by GitHub
parent 69fa2c51a2
commit 4ef8daffb6
21 changed files with 45 additions and 33 deletions

View File

@@ -6,6 +6,8 @@ import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
// ignore: depend_on_referenced_packages
import 'package:window_size/window_size.dart';
@@ -147,29 +149,38 @@ final miscDemos = [
builder: (context) => const CurvedAnimationDemo()),
];
final basicDemoRoutes =
Map.fromEntries(basicDemos.map((d) => MapEntry(d.route, d.builder)));
final miscDemoRoutes =
Map.fromEntries(miscDemos.map((d) => MapEntry(d.route, d.builder)));
final allRoutes = <String, WidgetBuilder>{
...basicDemoRoutes,
...miscDemoRoutes,
};
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => const HomePage(),
routes: [
for (final demo in basicDemos)
GoRoute(
path: demo.route,
builder: (context, state) => demo.builder(context),
),
for (final demo in miscDemos)
GoRoute(
path: demo.route,
builder: (context, state) => demo.builder(context),
),
],
),
],
);
class AnimationSamples extends StatelessWidget {
const AnimationSamples({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
return MaterialApp.router(
title: 'Animation Samples',
theme: ThemeData(
primarySwatch: Colors.deepPurple,
),
routes: allRoutes,
home: const HomePage(),
routerConfig: router,
);
}
}
@@ -206,7 +217,7 @@ class DemoTile extends StatelessWidget {
return ListTile(
title: Text(demo.name),
onTap: () {
Navigator.pushNamed(context, demo.route);
context.go('/${demo.route}');
},
);
}