HomePage.dart (3124B)
1 import 'package:flutter/cupertino.dart'; 2 import 'package:flutter/material.dart'; 3 import 'package:flutter_bloc/flutter_bloc.dart'; 4 import 'package:http/http.dart' as http; 5 6 import '../blocs/MapBloc.dart'; 7 import '../repos/RailwayStationsApiClient.dart'; 8 import '../repos/repositories.dart'; 9 import 'tabs/MapTab.dart'; 10 import 'tabs/RankingsTab.dart'; 11 import 'tabs/SettingsTab.dart'; 12 import 'tabs/StationsTab.dart'; 13 14 class HomePage extends StatelessWidget { 15 @override 16 Widget build(BuildContext context) { 17 final RailwayStationsRepository railwayStationsRepository = 18 RailwayStationsRepository( 19 railwayStationsApiClient: RailwayStationsApiClient( 20 httpClient: http.Client(), 21 ), 22 ); 23 24 return DefaultTabController( 25 length: 4, 26 initialIndex: 2, 27 child: Scaffold( 28 bottomNavigationBar: Container( 29 color: Theme.of(context).primaryColor, 30 child: TabBar( 31 labelColor: Colors.white, 32 unselectedLabelColor: Colors.white70, 33 indicatorSize: TabBarIndicatorSize.tab, 34 //indicatorPadding: EdgeInsets.all(5.0), 35 indicatorColor: Theme.of(context).accentColor, 36 tabs: [ 37 Tab( 38 icon: Icon( 39 CupertinoIcons.location, 40 size: 20, 41 ), 42 text: 'Map', 43 ), 44 Tab( 45 icon: Icon( 46 CupertinoIcons.info, 47 size: 20, 48 ), 49 text: 'Rangliste', 50 ), 51 Tab( 52 icon: Icon( 53 CupertinoIcons.train_style_one, 54 size: 20, 55 ), 56 text: 'Bahnhöfe', 57 ), 58 Tab( 59 icon: Icon( 60 CupertinoIcons.profile_circled, 61 size: 20, 62 ), 63 text: 'Meine Daten', 64 ), 65 ], 66 ), 67 ), 68 body: TabBarView( 69 physics: NeverScrollableScrollPhysics(), 70 children: [ 71 Scaffold( 72 body: BlocProvider( 73 create: (context) => MapBloc( 74 railwayStationsRepository: railwayStationsRepository, 75 ), 76 child: MapTab( 77 railwayStationsRepository: railwayStationsRepository, 78 ), 79 ), 80 ), 81 RankingsTab( 82 railwayStationsRepository: railwayStationsRepository, 83 ), 84 StationsTab( 85 railwayStationsRepository: railwayStationsRepository, 86 ), 87 Scaffold( 88 appBar: AppBar( 89 title: Text("Meine Daten"), 90 ), 91 body: SettingsTab(), 92 ), 93 ], 94 ), 95 /* child: Container( 96 child: Center( 97 child: RaisedButton( 98 child: Text('logout'), 99 onPressed: () { 100 BlocProvider.of<AuthenticationBloc>(context).add(LoggedOut()); 101 }, 102 )), 103 ),*/ 104 ), 105 ); 106 } 107 }