import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_template/app/config/app_config.dart'; import 'package:flutter_template/app/router/app_navigator.dart'; import 'package:flutter_template/app/theme/app_theme.dart'; import 'package:flutter_template/features/demo/demo_page.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; class FlutterTemplateApp extends StatelessWidget { const FlutterTemplateApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(375, 812), minTextAdapt: true, splitScreenMode: true, builder: (context, child) { return MaterialApp( title: AppConfig.appName, navigatorKey: AppNavigator.navigatorKey, navigatorObservers: [RouteTracker()], debugShowCheckedModeBanner: false, theme: AppTheme.light, darkTheme: AppTheme.dark, supportedLocales: const [Locale('zh', 'CN'), Locale('en', 'US')], localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], builder: EasyLoading.init( builder: (context, child) { return MediaQuery( data: MediaQuery.of( context, ).copyWith(textScaler: const TextScaler.linear(1)), child: child ?? const SizedBox.shrink(), ); }, ), home: RefreshConfiguration( enableLoadingWhenNoData: false, headerTriggerDistance: 80, child: const DemoPage(), ), ); }, ); } }