import 'package:flutter/material.dart'; import 'package:flutter_common/provider/theme_provider.dart'; import 'package:flutter_common/utils/sp_utils.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:food_hub_app/provider/food_provider.dart'; import 'package:food_hub_app/views/home.dart'; import 'package:food_hub_app/views/login.dart'; import 'package:food_hub_app/views/moment_form.dart'; import 'package:food_hub_app/views/record_form.dart'; import 'package:food_hub_app/views/recipe_detail.dart'; import 'package:form_builder_validators/form_builder_validators.dart'; import 'package:provider/provider.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); FormBuilderLocalizations.delegate.load(const Locale('zh', 'CN')); await SPUtil.init(); runApp( MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => FoodProvider()), ChangeNotifierProvider(create: (context) => ThemeProvider()), ], child: MyApp(), ), ); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { final themeProvider = context.watch(); return MaterialApp( debugShowCheckedModeBanner: false, theme: themeProvider.currentThemeData, supportedLocales: const [ Locale('en', 'US'), // 英语 Locale('zh', 'CN'), // 中文 ], // 本地化代理配置 localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], // 根据系统语言自动选择Locale localeResolutionCallback: (locale, supportedLocales) { for (var supportedLocale in supportedLocales) { if (supportedLocale.languageCode == locale?.languageCode) { return supportedLocale; } } return supportedLocales.first; }, home: LoginPage(), routes: { '/home': (context) => HomePage(), '/recordForm': (context) => RecordFormPage(), '/recipeDetail': (context) => RecipeDetailPage(), '/momentForm': (context) => MomentFormPage(), }, ); } }