import 'package:amap_flutter_map/amap_flutter_map.dart'; import 'package:autosos_flutter/const_config.dart'; import 'package:autosos_flutter/pages/config/theme_colors.dart'; import 'package:autosos_flutter/pages/home/widgets/image_block.dart'; import 'package:autosos_flutter/pages/home/widgets/number_block.dart'; import 'package:flutter/material.dart'; class HomePage extends StatefulWidget { const HomePage({super.key}); @override State createState() => _HomePageState(); } class _HomePageState extends State { bool enabled = false; @override Widget build(BuildContext context) { const AMapWidget map = AMapWidget( ///必须正确设置的合规隐私声明,否则SDK不会工作,会造成地图白屏等问题。 privacyStatement: ConstConfig.amapPrivacyStatement, apiKey: ConstConfig.amapApiKeys, ); return Scaffold( appBar: AppBar( title: const Text( "首页", style: TextStyle(color: Colors.white), ), actions: const [ Text("今日在线时长?小时", style: TextStyle(color: Colors.white)) ], flexibleSpace: Container( decoration: const BoxDecoration( image: DecorationImage( image: AssetImage("images/4.0x/home_top_bg.png"), fit: BoxFit.cover)), )), backgroundColor: const Color(0xFFF3F3F3), body: Padding( padding: const EdgeInsets.all(10), child: Column( children: [ buildTopWidget(), buildMiddleWidget(), buildBottomWidget() ], ), )); } Widget buildTopWidget() { return Container( padding: const EdgeInsets.all(20), decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(5))), child: Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Row( children: [ Text( "接单中", style: TextStyle( fontSize: 23, fontWeight: FontWeight.bold, color: Colors.black), ) ], ), Row( children: [ Switch( value: enabled, onChanged: (value) => setState(() { enabled = value; }), activeColor: ThemeColors.primary, ), Container( margin: const EdgeInsets.only(left: 10, right: 10), width: 1, height: 20, color: Colors.grey, ), Column( children: [ enabled ? Image.asset("images/3.0x/order_receiving_star.png") : Image.asset("images/3.0x/order_receiving_end.png"), const Text("订单") ], ) ], ) ], ), GridView.count( physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, crossAxisCount: 3, childAspectRatio: 1.5, children: const [ NumberBlock(title: "钱包(元)", number: "111"), NumberBlock(title: "总订单数", number: "111"), NumberBlock(title: "总金额(元)", number: "111"), ImageBlock(title: "提现", imgUrl: "images/3.0x/tixian_ic.png"), ImageBlock( title: "个人中心", imgUrl: "images/3.0x/gerenzhongxin_ic.png"), ImageBlock(title: "设置", imgUrl: "images/3.0x/shezhi_ic.png"), ], ), ], ), ); } Widget buildMiddleWidget() { return Container( margin: const EdgeInsets.only(top: 10), padding: const EdgeInsets.all(20), decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(5))), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( children: [ const Text( "非事故拖车", style: TextStyle( color: ThemeColors.primary, fontSize: 19, fontWeight: FontWeight.bold), ), Container( height: 20, margin: const EdgeInsets.only(left: 10), decoration: BoxDecoration( border: Border.all(color: Colors.grey, width: 1), borderRadius: const BorderRadius.all(Radius.circular(10))), child: const Padding( padding: EdgeInsets.all(3), child: Text( "最近订单", style: TextStyle(fontSize: 8), ), )) ], ), const Text("已完成") ], ), const Divider(), Row( children: [ Container( margin: const EdgeInsets.only(right: 10), child: Image.asset("images/3.0x/time_ic.png"), ), const Text( "2024-01-23 16:36:03", style: TextStyle(fontSize: 12, color: Color(0xFF9B9B9B)), ), ], ) ], ), ); } Widget buildBottomWidget() { return Container(); } }