rsflutterapp

Bahnhofsfoto-App for Android and iOS using Flutter
git clone git://archive.git.mtrnord.blog/MTRNord/rsflutterapp.git
Log | Files | Refs | README

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 }