Skip to content
Snippets Groups Projects
Select Git revision
  • 2495701bf5774039d3767eb733163097c5e17cb9
  • main default protected
2 results

main.dart

Blame
  • main.dart 4.88 KiB
    import 'package:english_words/english_words.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/rendering.dart';
    import 'package:provider/provider.dart';
    
    void main() {
      runApp(MyApp());
    }
    // 앱객체 생성
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return ChangeNotifierProvider(
          create: (context) => MyAppState(),
          child: MaterialApp(
            title: 'Namer App',
            theme: ThemeData(
              useMaterial3: true,
              colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepOrange),
            ),
            home: MyHomePage(),
          ),
        );
      }
    }
    
    class MyAppState extends ChangeNotifier {
      var current = WordPair.random();
    
      void getNext() {
        current = WordPair.random();
        notifyListeners();
      }
      var favorites = <WordPair>[];
    
      void toggleFavorite() {
        if (favorites.contains(current)) {
          favorites.remove(current);
        } else {
          favorites.add(current);
        }
        notifyListeners();
      }
    
    }
    
    class MyHomePage extends StatefulWidget {
      @override
      State<MyHomePage> createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      var selectedIndex = 0;
      @override
      
      Widget build(BuildContext context) {
        Widget page;
    switch (selectedIndex) {
      case 0:
        page = GeneratorPage();
        break;
      case 1:
        page = FavoritesPage();
        break;
      default:
        throw UnimplementedError('no widget for $selectedIndex');
    }
        return LayoutBuilder(builder: (context, constraints) {