main.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import 'package:electronic_assistant/resource/colors.gen.dart';
  2. import 'package:electronic_assistant/resource/string.gen.dart';
  3. import 'package:electronic_assistant/resource/string_source.dart';
  4. import 'package:electronic_assistant/router/app_pages.dart';
  5. import 'package:electronic_assistant/utils/app_info_util.dart';
  6. import 'package:electronic_assistant/utils/mmkv_util.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:flutter_screenutil/flutter_screenutil.dart';
  9. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  10. import 'package:get/get.dart';
  11. import 'package:get/get_navigation/src/root/get_material_app.dart';
  12. import 'package:pull_to_refresh/pull_to_refresh.dart';
  13. void main() async {
  14. WidgetsFlutterBinding.ensureInitialized();
  15. //全局配置smartDialog
  16. smartConfig();
  17. //获取包信息
  18. appInfoUtil.init();
  19. //mmkv
  20. await KVUtil.init();
  21. runApp(const MyApp());
  22. }
  23. void smartConfig() {
  24. SmartDialog.config.custom =
  25. SmartConfigCustom(animationType: SmartAnimationType.fade);
  26. }
  27. class MyApp extends StatelessWidget {
  28. const MyApp({super.key});
  29. // This widget is the root of your application.
  30. @override
  31. Widget build(BuildContext context) {
  32. return ScreenUtilInit(
  33. designSize: const Size(360, 800),
  34. builder: (_, child) {
  35. return _buildMaterialApp();
  36. },
  37. );
  38. }
  39. _buildMaterialApp() {
  40. return RefreshConfiguration(
  41. headerBuilder: () =>
  42. const MaterialClassicHeader(color: ColorName.colorPrimary),
  43. footerBuilder: () => ClassicFooter(
  44. canLoadingText: StringName.loadingMore.tr,
  45. idleText: StringName.loadPullUp.tr,
  46. loadingText: StringName.loadingTxt.tr,
  47. noDataText: StringName.loadNoData.tr,
  48. failedText: StringName.loadFailed.tr,
  49. ),
  50. child: GetMaterialApp(
  51. title: StringName.appName.tr,
  52. getPages: AppPage.pages,
  53. initialRoute: RoutePath.splash,
  54. initialBinding: AppBinding(),
  55. theme: ThemeData(
  56. useMaterial3: true,
  57. ),
  58. navigatorObservers: [FlutterSmartDialog.observer],
  59. builder: FlutterSmartDialog.init(),
  60. translations: StringResource(),
  61. // 你的翻译
  62. locale: const Locale('zh', 'CN'),
  63. // 将会按照此处指定的语言翻译
  64. fallbackLocale: const Locale('zh', 'CN'), // 添加一个回调语言选项,以备上面指定的语言翻译不存在
  65. ),
  66. );
  67. }
  68. }