import 'package:flutter/material.dart'; import 'package:marianum_mobile/screen/pages/timetable/timetable.dart'; import 'package:marianum_mobile/screen/pages/timetable/testTimetable.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'dataOld/incommingPackets/talkNotificationsPacket.dart'; import 'screen/pages/files/files.dart'; import 'screen/pages/more/overhang.dart'; import 'screen/pages/talk/chatList.dart'; import 'screen/pages/timetable/timetableOld.dart'; import 'screen/settings/settings.dart'; class App extends StatefulWidget { const App({Key? key}) : super(key: key); @override State createState() => _AppState(); } class _AppState extends State { int currentPage = 0; @override Widget build(BuildContext context) { final PageController pageController = PageController(); return Scaffold( resizeToAvoidBottomInset: false, appBar: AppBar( title: const Text("Marianum Fulda"), actions: [ IconButton( padding: const EdgeInsets.only(right: 15), icon: const Icon(Icons.settings), onPressed: () { Navigator.push(context, MaterialPageRoute(builder: (context) => const Settings())); }, ) ], ), body: Column( children: [ Visibility( visible: false, child: LinearProgressIndicator( backgroundColor: Colors.transparent, valueColor: AlwaysStoppedAnimation(Theme.of(context).primaryColor), minHeight: 5, ), ), Flexible( child: PageView( controller: pageController, children: [ Timetable(), ChatList(), Files(), Overhang(), ], onPageChanged: (page) { setState(() { currentPage = page; }); }, ), ) ], ), bottomNavigationBar: BottomNavigationBar( items: [ const BottomNavigationBarItem(icon: Icon(Icons.calendar_month), label: "Vertretung"), BottomNavigationBarItem(icon: Stack( children: [ const Icon(Icons.chat), Consumer( builder: (context, data, child) { return Visibility( visible: data.amount != 0, child: Positioned( right: 0, child: Container( padding: const EdgeInsets.all(1), decoration: BoxDecoration( color: Colors.red, borderRadius: BorderRadius.circular(6), ), constraints: const BoxConstraints( minWidth: 12, minHeight: 12, ), child: Text( "${data.amount}", style: const TextStyle( color: Colors.black, fontSize: 10, ), textAlign: TextAlign.center, ), ), ), ); }, ) ], ), label: "Talk"), const BottomNavigationBarItem(icon: Icon(Icons.folder), label: "Dateien"), const BottomNavigationBarItem(icon: Icon(Icons.more_horiz), label: "Mehr"), ], selectedItemColor: Theme.of(context).primaryColor, unselectedItemColor: Colors.grey, showUnselectedLabels: true, showSelectedLabels: true, currentIndex: currentPage, onTap: (item) { setState(() { currentPage = item; pageController.jumpToPage(item); }); }, ), ); } }