Merge pull request #8 from allemangD/Navigation

Navigation
This commit is contained in:
clopezr1
2020-03-31 23:39:19 -04:00
committed by GitHub
10 changed files with 281 additions and 49 deletions

View File

@@ -1,6 +1,5 @@
import 'package:capstone_hungry_hippos/route_generator.dart';
import 'package:flutter/material.dart';
import 'screens/home_widget.dart';
import 'screens/sport.dart';
void main() => runApp(App());
@@ -10,10 +9,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(

53
lib/route_generator.dart Normal file
View File

@@ -0,0 +1,53 @@
import 'package:capstone_hungry_hippos/screens/chat.dart';
import 'package:capstone_hungry_hippos/screens/schedule.dart';
import 'package:capstone_hungry_hippos/screens/standing.dart';
import 'package:flutter/material.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());
case '/Schedule':
return MaterialPageRoute(builder: (_) => Schedule());
case '/Standing':
return MaterialPageRoute(builder: (_) => Standing());
case '/Chat':
return MaterialPageRoute(builder: (_) => Chat());
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(_, '/'),
),
),
],
),
),
);
});
}
}

40
lib/screens/chat.dart Normal file
View File

@@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
class Chat extends StatelessWidget{
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar(
centerTitle: false,
title: Text("49ers"),
backgroundColor: Colors.green,
),
body: Text("Chat Goes Here"),
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(
color: Colors.white,
fontSize: 24,
),
),
decoration: BoxDecoration(
color: Colors.green,
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.home),
onPressed: () => Navigator.pushNamed(context, '/'),
),
),
],
),
)
));
}
}

View File

@@ -1,50 +1,64 @@
import 'package:flutter/material.dart';
import '../news/feed.dart';
class Home extends StatelessWidget {
final feed = Feed(); //was var not final
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar(
centerTitle: false,
title: Text("49ers"),
backgroundColor: Colors.green,
),
body: ListView(
children: <Widget>[
HorizontalNewsFeed(newsFeed: feed, title: Text("Basketball")),
HorizontalNewsFeed(newsFeed: feed, title: Text("Soccer")),
HorizontalNewsFeed(newsFeed: feed, title: Text("Football")),
HorizontalNewsFeed(newsFeed: feed, title: Text("Volleyball")),
],
),
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(
color: Colors.white,
fontSize: 28,
),
),
decoration: BoxDecoration(
color: Colors.green,
),
),
ListTile(
leading: Icon(Icons.message),
title: Text('Messages'),
),
],
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
_AppBar(),
SliverList(delegate: SliverChildListDelegate(_buildList())),
],
),
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(
color: Colors.white,
fontSize: 28,
),
),
));
decoration: BoxDecoration(
color: Colors.green,
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.message),
onPressed: () => Navigator.pushNamed(context, '/Chat'),
),
),
],
),
),
);
}
}
class _AppBar extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SliverAppBar(
centerTitle: false,
title: Text("49ers"),
backgroundColor: Colors.green,
);
}
}
List _buildList() {
final feed = Feed();
List<HorizontalNewsFeed> listItems = List();
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Football")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Soccer")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Basketball")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Volleyball")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Baseball")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Softball")));
listItems.add(HorizontalNewsFeed(newsFeed: feed, title: Text("Tennis")));
return listItems;
}

40
lib/screens/schedule.dart Normal file
View File

@@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
class Schedule extends StatelessWidget{
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar(
centerTitle: false,
title: Text("49ers"),
backgroundColor: Colors.green,
),
body: Text("Schedule Goes Here"),
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(
color: Colors.white,
fontSize: 24,
),
),
decoration: BoxDecoration(
color: Colors.green,
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.home),
onPressed: () => Navigator.pushNamed(context, '/'),
),
),
],
),
)
));
}
}

View File

@@ -55,6 +55,18 @@ class Sport extends StatelessWidget {
onPressed: () => Navigator.pushNamed(context, '/'),
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.table_chart),
onPressed: () => Navigator.pushNamed(context, '/Standing'),
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.calendar_today),
onPressed: () => Navigator.pushNamed(context, '/Schedule'),
),
),
],
),
),

40
lib/screens/standing.dart Normal file
View File

@@ -0,0 +1,40 @@
import 'package:flutter/material.dart';
class Standing extends StatelessWidget{
@override
Widget build(BuildContext context) {
return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar(
centerTitle: false,
title: Text("49ers"),
backgroundColor: Colors.green,
),
body: Text("Standings Goes Here"),
drawer: Drawer(
child: ListView(
children: <Widget>[
DrawerHeader(
child: Text(
'Drawer Header',
style: TextStyle(
color: Colors.white,
fontSize: 24,
),
),
decoration: BoxDecoration(
color: Colors.green,
),
),
ListTile(
title: IconButton(
icon: Icon(Icons.home),
onPressed: () => Navigator.pushNamed(context, '/'),
),
),
],
),
)
));
}
}

View File

@@ -22,6 +22,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
bloc:
dependency: transitive
description:
name: bloc
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
boolean_selector:
dependency: transitive
description:
@@ -69,6 +76,13 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_bloc:
dependency: "direct main"
description:
name: flutter_bloc
url: "https://pub.dartlang.org"
source: hosted
version: "3.2.0"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -109,6 +123,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.8"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4"
path:
dependency: transitive
description:
@@ -130,6 +151,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
provider:
dependency: transitive
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.4"
quiver:
dependency: transitive
description:
@@ -137,6 +165,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
rxdart:
dependency: transitive
description:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
version: "0.23.1"
sky_engine:
dependency: transitive
description: flutter
@@ -183,7 +218,7 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.11"
version: "0.2.15"
typed_data:
dependency: transitive
description:
@@ -206,4 +241,5 @@ packages:
source: hosted
version: "3.5.0"
sdks:
dart: ">=2.4.0 <3.0.0"
dart: ">=2.6.0 <3.0.0"
flutter: ">=1.12.1"

View File

@@ -19,6 +19,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_bloc: ^3.2.0
http: ^0.12.0+4