import 'package:drift/drift.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:temperaturdecke/database.dart'; import 'package:temperaturdecke/screens/day.dart'; import 'package:temperaturdecke/screens/overview.dart'; import 'package:temperaturdecke/screens/settings.dart'; import 'package:dynamic_color/dynamic_color.dart'; import 'package:temperaturdecke/screens/wool.dart'; void main() async { runApp(Provider( create: (context) => AppDatabase(), child: MyApp(), dispose: (context, db) => db.close(), )); WidgetsFlutterBinding.ensureInitialized(); } class MyApp extends StatefulWidget { MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State { int currentPageIndex = 0; List screens = [ dayScreen(), OverviewScreen(), WoolScreen(), SettingsScreen(), ]; // This widget is the root of your application. @override Widget build(BuildContext context) { return DynamicColorBuilder( builder: (ColorScheme? lightDynamic, ColorScheme? darkDynamic) { ColorScheme lightColorScheme; ColorScheme darkColorScheme; if (lightDynamic != null && darkDynamic != null) { // On Android S+ devices, use the provided dynamic color scheme. // (Recommended) Harmonize the dynamic color scheme' built-in semantic colors. lightColorScheme = lightDynamic.harmonized(); // Repeat for the dark color scheme. darkColorScheme = darkDynamic.harmonized(); } else { // Otherwise, use fallback schemes. lightColorScheme = ColorScheme.fromSeed( seedColor: Colors.blue, ); darkColorScheme = ColorScheme.fromSeed( seedColor: Colors.blue, brightness: Brightness.dark, ); } return MaterialApp( theme: ThemeData(useMaterial3: true, colorScheme: darkColorScheme), title: 'Flutter Demo', home: Scaffold( body: AnimatedSwitcher( duration: Duration(milliseconds: 200), child: screens[currentPageIndex], ), bottomNavigationBar: NavigationBar( onDestinationSelected: (int index) { print(currentPageIndex); setState(() { currentPageIndex = index; }); }, selectedIndex: currentPageIndex, destinations: const [ NavigationDestination( icon: Icon(Icons.sunny), label: 'Tag', ), NavigationDestination( icon: Icon(Icons.list), label: 'Übersicht', ), NavigationDestination( icon: Icon(Icons.circle), label: 'Wolle', ), NavigationDestination( icon: Icon(Icons.settings), label: 'Einstellungen', ), ], ), ), ); }); } } @override Widget build(BuildContext context) { // This method is rerun every time setState is called, for instance as done // by the _incrementCounter method above. // // The Flutter framework has been optimized to make rerunning build methods // fast, so that you can just rebuild anything that needs updating rather // than having to individually change instances of widgets. return dayScreen(); }