Files
wushu/lib/main.dart
2026-04-02 07:06:55 +08:00

52 lines
1.5 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'utils/app_theme.dart';
import 'utils/app_initializer.dart';
import 'utils/force_guide_checker.dart';
import 'routes/app_routes.dart';
import 'constants/app_constants.dart';
import 'controllers/shared_preferences_storage_controller.dart';
import 'services/get/theme_controller.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SharedPreferencesStorageController.init();
// 初始化 ThemeController在 AppInitializer 之前,确保主题最先加载)
Get.put(ThemeController(), permanent: true);
final result = await AppInitializer.initialize();
runApp(
MyApp(
initialRoute: result.initialRoute,
guideCheckResult: result.guideCheckResult,
),
);
}
class MyApp extends StatelessWidget {
final String initialRoute;
final GuideCheckResult? guideCheckResult;
const MyApp({super.key, required this.initialRoute, this.guideCheckResult});
@override
Widget build(BuildContext context) {
// 使用 Obx 监听主题变化
return Obx(() {
final themeController = Get.find<ThemeController>();
return GetMaterialApp(
title: AppConstants.appName,
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: themeController.currentThemeMode,
initialRoute: initialRoute,
onGenerateRoute: AppRoutes.generateRoute,
);
});
}
}