main.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'package:dynamic_theme/dynamic_theme.dart';
  2. import 'package:flutter/material.dart';
  3. import 'data/theme.dart';
  4. import 'screens/home.dart';
  5. void main() {
  6. WidgetsFlutterBinding.ensureInitialized();
  7. setThemeAndRun();
  8. }
  9. setThemeAndRun() async {
  10. TupleTheme savedTheme = (await getCurrentTheme());
  11. print("setTheme home " + savedTheme.name);
  12. runApp(MyApp(
  13. theme: savedTheme.theme,
  14. ));
  15. }
  16. class MyApp extends StatefulWidget {
  17. final ThemeData theme;
  18. MyApp({Key key, this.theme}) : super(key: key);
  19. @override
  20. _AppState createState() => _AppState(theme);
  21. }
  22. class _AppState extends State<MyApp> {
  23. _AppState(ThemeData theme) {
  24. chosenTheme = theme;
  25. }
  26. ThemeData chosenTheme;
  27. @override
  28. void initState() {
  29. super.initState();
  30. }
  31. @override
  32. Widget build(BuildContext context) {
  33. return DynamicTheme(
  34. defaultBrightness: chosenTheme.brightness,
  35. data: (brightness) => chosenTheme,
  36. themedWidgetBuilder: (context, theme) {
  37. return new MaterialApp(
  38. title: 'Notes app',
  39. theme: theme,
  40. home: HomeScreen(),
  41. );
  42. });
  43. }
  44. }