import 'package:flutter/material.dart'; import 'package:food_hub_app/layout/index.dart'; import 'package:food_hub_app/models/layout.dart'; import 'package:food_hub_app/views/moment.dart'; import 'package:food_hub_app/views/profile.dart'; import 'package:food_hub_app/views/record.dart'; import 'package:food_hub_app/views/stats.dart'; class HomePage extends StatefulWidget { const HomePage({super.key}); @override State createState() => _HomePage(); } class _HomePage extends State { int _currentIndex = 0; final List navItems = [ NavItem( label: "记录", icon: Icons.home_outlined, activeIcon: Icons.home, page: RecordPage(), ), NavItem( label: "统计", icon: Icons.pie_chart_outline, activeIcon: Icons.pie_chart, page: StatsPage(), ), NavItem( label: "朋友圈", icon: Icons.group_outlined, activeIcon: Icons.group, page: MomentPage(), ), NavItem( label: "我的", icon: Icons.account_circle_outlined, activeIcon: Icons.account_circle, page: ProfilePage(), ), ]; List get bottomNavItems => navItems .map( (item) => BottomNavigationBarItem( icon: Icon(item.icon), activeIcon: Icon(item.activeIcon), label: item.label, ), ) .toList(); List get tabPages => navItems.map((item) => item.page).toList(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( centerTitle: true, title: Text('Food Hub', style: TextStyle(color: Colors.white)), backgroundColor: Theme.of(context).primaryColor, leading: Builder( builder: (context) { return IconButton( icon: const Icon(Icons.menu), color: Colors.white, onPressed: () => Scaffold.of(context).openDrawer(), ); }, ), actions: homeActions(context), ), backgroundColor: Color(0xFFF5F5F5), drawer: const SettingsDrawer(), body: tabPages[_currentIndex], bottomNavigationBar: NavBar( navItems: bottomNavItems, currentIndex: _currentIndex, onTap: (index) { setState(() { _currentIndex = index; }); }, ), ); } }