diff --git a/lib/screens/standing.dart b/lib/screens/standing.dart index cfd614f..99eee24 100644 --- a/lib/screens/standing.dart +++ b/lib/screens/standing.dart @@ -24,6 +24,8 @@ class Standing extends StatelessWidget { final List sport; Standing(this.sport); + final teams = Team_Standings(); + @override Widget build(BuildContext context) { // *----- OLD CODE -------* @@ -66,7 +68,7 @@ class Standing extends StatelessWidget { );*/ // *----- Testing CODE -------* - var standings = Team_Standings(sport[0]); + //var standings = Team_Standings(sport[0]); return StatefulBuilder( builder: (context, StateSetter setState) => Scaffold( appBar: AppBar( @@ -75,9 +77,15 @@ class Standing extends StatelessWidget { backgroundColor: Colors.green, ), - body: Container ( - child: standings, - ), + /*body: Container ( + //child: standings, + ),*/ + + body: ListView( + children: [ + HorizontalStandings(teamStandings: teams), + ], + ), /*body: SingleChildScrollView ( child: Column( diff --git a/lib/team_standings.dart b/lib/team_standings.dart index 4f31a03..8a63735 100644 --- a/lib/team_standings.dart +++ b/lib/team_standings.dart @@ -1,10 +1,81 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; +import 'screens/sport.dart' as globals; import 'screens/sport_standings_basketball.dart'; import 'dart:convert'; -class Team_Standings extends StatefulWidget { +class Team_Standings { + int sport_ID; + String sportUrl; + + Future> getTeams() async { + print(globals.Sport.sport_ID); + + switch(globals.Sport.sport_ID.toString()) { + case "3" : { //football + sportUrl = 'https://site.web.api.espn.com/apis/v2/sports/football/college-football/standings?region=us&lang=en&contentorigin=espn&group=12&level=3&sort=leaguewinpercent%3Adesc%2Cvsconf_wins%3Adesc%2Cvsconf_gamesbehind%3Aasc%2Cvsconf_playoffseed%3Aasc%2Cwins%3Adesc%2Closses%3Adesc%2Cplayoffseed%3Aasc%2Calpha%3Aasc'; + break; + } + case "5" : { //men basketball + sportUrl = 'https://site.web.api.espn.com/apis/v2/sports/basketball/mens-college-basketball/standings?region=us&lang=en&contentorigin=espn&group=11&sort=playoffseed%3Aasc%2Cvsconf_winpercent%3Adesc%2Cvsconf_wins%3Adesc%2Cvsconf_losses%3Aasc%2Cvsconf_gamesbehind%3Aasc&includestats=playoffseed%2Cvsconf%2Cvsconf_gamesbehind%2Cvsconf_winpercent%2Ctotal%2Cwinpercent%2Chome%2Croad%2Cstreak%2Cvsaprankedteams%2Cvsusarankedteams'; + break; + } + case "13" : { + sportUrl = 'https://site.web.api.espn.com/apis/v2/sports/basketball/womens-college-basketball/standings?region=us&lang=en&contentorigin=espn&sort=leaguewinpercent%3Adesc%2Cvsconf_winpercent%3Adesc%2Cvsconf_gamesbehind%3Aasc%2Cvsconf_playoffseed%3Aasc%2Cwins%3Adesc%2Closses%3Adesc%2Cplayoffseed%3Aasc%2Calpha%3Aasc&group=11'; + break; + } + } + print(sportUrl.toString()); + + http.Response response = await http.get(sportUrl); + Iterable games = json.decode(response.body); + + return games.map((e) => sport_standings_basketball.fromJson(e)).toList(); + } +} + +class HorizontalStandings extends StatelessWidget { + final Team_Standings teamStandings; + const HorizontalStandings({Key key, @required this.teamStandings,}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Column( + children: [ + //_buildBasketballStandings(), + Expanded( + child: FutureBuilder( + future: teamStandings.getTeams(), + builder: (ctx, snapshot) { + if (!snapshot.hasData) { + return Center(child: CircularProgressIndicator()); + } else { + return ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: snapshot.data.length, + itemBuilder: (ctx, idx) { + return DataTable( + columns: [ + DataColumn(label: Text("")), + DataColumn(label: Text("Conference")), + DataColumn(label: Text("Overall")), + ], + ); + }, + ); + } + }, + ), + ), + ], + ), + ); + } +} + +/*class Team_Standings extends StatefulWidget { final int sportID; Team_Standings(this.sportID); @@ -47,7 +118,6 @@ class _Standings extends State { @override void initState() { _selectedTeams = []; - super.initState(); } @@ -57,7 +127,7 @@ class _Standings extends State { child: Column( children: [ _buildBasketballStandings(), - //Expanded(child: _eventLister()), + Expanded(child: _eventLister()), ], ), ); @@ -66,6 +136,7 @@ class _Standings extends State { Widget _buildBasketballStandings() { return Container( margin: EdgeInsets.all(15), + child: Table( border: TableBorder( horizontalInside: BorderSide( @@ -81,7 +152,7 @@ class _Standings extends State { color: Color.fromRGBO(0, 112, 60, 1), //UNCC Green ), ), - columnWidths: {0: FractionColumnWidth(.3), 1: FractionColumnWidth(.3), 2: FractionColumnWidth(.5)}, + columnWidths: {0: FractionColumnWidth(.3), 1: FractionColumnWidth(.4), 2: FractionColumnWidth(.6)}, children: [ TableRow( children: [ Column(children:[Text('')]), @@ -100,4 +171,4 @@ class _Standings extends State { ), ); } -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 7fc9f02..b39c496 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -259,6 +259,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.3" + table_sticky_headers: + dependency: "direct main" + description: + name: table_sticky_headers + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" term_glyph: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 323c7ae..8177a56 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,6 +29,7 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 table_calendar: + table_sticky_headers: dev_dependencies: flutter_test: