RouteGenerator

This commit is contained in:
Carlos Lopez-Rosario
2020-03-05 18:24:44 -05:00
parent fe6f3b65fd
commit 60fb57f904
3 changed files with 48 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
import 'package:capstone_hungry_hippos/route_generator.dart';
import 'package:flutter/material.dart';
import 'screens/home_widget.dart';
import 'screens/sport.dart';
@@ -10,10 +11,7 @@ class App extends StatelessWidget {
return MaterialApp(
debugShowCheckedModeBanner: false,
initialRoute: '/',
routes: {
'/': (context) => Home(),
'/Sport': (context) => Sport(),
},
onGenerateRoute: RouteGenerator.generateRoute,
);
}
}

View File

@@ -43,7 +43,7 @@ class HorizontalNewsFeed extends StatelessWidget {
title: title,
trailing: IconButton(
icon: Icon(Icons.navigate_next),
onPressed: () => Navigator.pushNamed(context, '/Sport'),
onPressed: () => Navigator.of(context).pushNamed('/Sport'),
),
),
Expanded(

45
lib/route_generator.dart Normal file
View File

@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:capstone_hungry_hippos/main.dart';
import 'package:capstone_hungry_hippos/screens/home_widget.dart';
import 'package:capstone_hungry_hippos/screens/sport.dart';
class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings){
final args = settings.arguments; //This is how we pass arguments and can be used in case
switch (settings.name){
case '/':
return MaterialPageRoute(builder: (_) => Home());
case '/Sport':
//We can put logic and stuff here for checking if logged in
return MaterialPageRoute(builder: (_) => Sport());
default:
return _errorRoute();
}
}
static Route _errorRoute() {
return MaterialPageRoute(builder: (_){
return Scaffold(
appBar: AppBar(
title: Text("Error Page"),
),
body: Center(
child: Text("Error Page"),
),
drawer: Drawer(
child: ListView(
children: <Widget>[
ListTile(
title: IconButton(
icon: Icon(Icons.home),
onPressed: () => Navigator.pushNamed(_, '/'),
),
),
],
),
),
);
});
}
}