main.dart
4.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import 'package:cp_offline_manage/common/langs/languages.dart';
import 'package:cp_offline_manage/router/route_config.dart';
import 'package:cp_offline_manage/utils/log.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:syncfusion_localizations/syncfusion_localizations.dart';
import 'common/colors.dart';
import 'common/global.dart';
import 'common/services/global_config.dart';
import 'component/my_waterdrop_header.dart';
import 'package:syncfusion_flutter_datepicker/datepicker.dart';
Future<void> main() async {
await initServices();
runApp(const MyApp());
//
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark);
if (GetPlatform.isAndroid) {
// 设置android状态栏为透明的沉浸。
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(statusBarColor: Colors.transparent),
);
}
}
Future<void> initServices() async {
LogUtils.i('starting services ...');
await Global.init();
await Get.putAsync(() => GlobalConfigService().init());
LogUtils.i('All services started...');
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return RefreshConfiguration(
headerBuilder: () => const MyWaterDropHeader(
waterDropColor: ColorConfig.themeColor
),
footerBuilder: () => const ClassicFooter(
loadingText: '加载中',
idleText: '上拉加载',
noDataText: '没有更多数据了',
failedText: '加载失败',
),
headerTriggerDistance: 80.0,
springDescription: const SpringDescription(stiffness: 170, damping: 16, mass: 1.9),
maxOverScrollExtent :100, //头部最大可以拖动的范围,如果发生冲出视图范围区域,请设置这个属性
enableScrollWhenRefreshCompleted: true,
enableLoadingWhenFailed : true,
hideFooterWhenNotFull: true,
enableBallisticLoad: true,
child: GetMaterialApp(
title: '商城',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primaryColor: ColorConfig.themeColor,
primarySwatch: Colors.red
),
initialRoute: RouteConfig.splashPageKey,
getPages: RouteConfig.getPages,
defaultTransition: Transition.rightToLeft,
transitionDuration: const Duration(milliseconds: 250),
translations: Languages(),
localizationsDelegates: const [
RefreshLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
SfGlobalLocalizations.delegate
],
// 我的翻译
locale: Get.find<GlobalConfigService>().language["locale"],
supportedLocales: const [
Locale('zh'),
Locale('en'),
],
// 将会按照指定的语言翻译
fallbackLocale: const Locale('zh'),
// FlutterEasyLoading 初始化一个 loading。
builder: (context, child) => FlutterEasyLoading(
child: Scaffold(
body: GestureDetector(
onTap: () {
// 点击空白处,键盘消失。
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus &&
currentFocus.focusedChild != null) {
FocusManager.instance.primaryFocus?.unfocus();
}
},
child: child,
),
),
),
)
);
}
}