import 'package:cs_resources/generated/assets.dart'; import 'package:flutter/material.dart'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:plugin_basic/provider/user_config/user_config_service.dart'; import 'package:router/ext/auto_router_extensions.dart'; import 'package:shared/utils/color_utils.dart'; import 'package:shared/utils/log_utils.dart'; import 'package:widgets/custom_sliver_persistent_header_delegate.dart'; import 'package:widgets/my_load_image.dart'; import 'package:widgets/ext/ex_widget.dart'; import 'package:widgets/my_text_view.dart'; import 'package:widgets/my_appbar.dart'; import 'package:cs_resources/theme/app_colors_theme.dart'; import 'package:widgets/widget_export.dart'; import '../../router/page/services_page_router.dart'; import 'inProgress/in_progress_page.dart'; import 'repair/repair_page.dart'; import 'services_page.dart'; enum ServicesType { cleaning, repair, } @RoutePage() class ServicesMainPage extends HookConsumerWidget { ServicesMainPage({Key? key}) : super(key: key); //启动当前页面 static void startInstance({BuildContext? context}) { if (context != null) { context.router.push( ServicesMainPageRoute()); } else { appRouter.push( ServicesMainPageRoute()); } } @override Widget build(BuildContext context, WidgetRef ref) { useEffect(() { // 监听窗口 }, []); useEffect(() { Log.d("ServicesMainPage initState"); // 延迟监听 }, []); return Scaffold( appBar: MyAppBar.appBar( context, "ServicesMain", backgroundColor: context.appColors.whiteBG, ), backgroundColor: context.appColors.backgroundDefault, body: Container( child: GridView.count( crossAxisCount: 2, padding: EdgeInsets.all(10), mainAxisSpacing: 10, crossAxisSpacing: 10, children: [ _buildServiceCard( context, ServicesType.cleaning, Assets.serviceInProgress, "Home Services", ServicesPage.startInstance, ), _buildServiceCard( context, ServicesType.repair, Assets.serviceHistory, "Maintenance", RepairPage.startInstance, ), ] ), ), ); } Widget _buildServiceCard( BuildContext context, ServicesType type, String imagePath, String title, Function() onTap, ) { return Container( decoration: BoxDecoration( color: context.appColors.whiteBG, borderRadius: BorderRadius.circular(10), boxShadow: [ BoxShadow( color: context.appColors.whiteBG, blurRadius: 5, offset: Offset(0, 3), ), ], ), ).onTap((){ if(type == ServicesType.cleaning){ ServicesPage.startInstance(); }else if(type == ServicesType.repair){ RepairPage.startInstance(); } }); } }