home_page.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import 'package:chicken_farm/components/vb_app_bar.dart';
  2. import 'package:chicken_farm/pages/home/menu_buttons.dart';
  3. import 'package:chicken_farm/stores/auth_store.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:flutter_riverpod/flutter_riverpod.dart';
  6. import 'profile.dart';
  7. class HomePage extends ConsumerStatefulWidget {
  8. const HomePage({super.key});
  9. @override
  10. ConsumerState<HomePage> createState() => _HomePageState();
  11. }
  12. class _HomePageState extends ConsumerState<HomePage> {
  13. int _selectedIndex = 0;
  14. static const List<String> _titles = ['功能菜单', '个人中心'];
  15. @override
  16. Widget build(BuildContext context) {
  17. final authState = ref.watch(authStoreProvider);
  18. return Scaffold(
  19. appBar: VberAppBar(
  20. title: _titles[_selectedIndex],
  21. showLeftButton: false, // 主页不显示返回按钮
  22. ),
  23. body: _buildBody(_selectedIndex, authState),
  24. bottomNavigationBar: BottomNavigationBar(
  25. type: BottomNavigationBarType.fixed,
  26. currentIndex: _selectedIndex,
  27. onTap: (index) {
  28. setState(() {
  29. _selectedIndex = index;
  30. });
  31. },
  32. items: const [
  33. BottomNavigationBarItem(
  34. icon: Icon(Icons.home_outlined),
  35. activeIcon: Icon(Icons.home),
  36. label: '功能菜单',
  37. ),
  38. BottomNavigationBarItem(
  39. icon: Icon(Icons.person_outline),
  40. activeIcon: Icon(Icons.person),
  41. label: '个人中心',
  42. ),
  43. ],
  44. ),
  45. );
  46. }
  47. Widget _buildBody(int selectedIndex, AuthInfo authState) {
  48. switch (selectedIndex) {
  49. case 0:
  50. return const Center(child: MenuButtons());
  51. case 1:
  52. return const ProfilePage();
  53. default:
  54. return const Center(child: Text('页面不存在'));
  55. }
  56. }
  57. }