main_page.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flutter/src/widgets/framework.dart';
  2. import 'package:hooks_riverpod/hooks_riverpod.dart';
  3. import 'package:auto_route/auto_route.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:shared/utils/ext_dart.dart';
  6. import '../../../router/page/main_page_router.dart';
  7. import 'package:router/ext/auto_router_extensions.dart';
  8. @RoutePage()
  9. class MainPage extends HookConsumerWidget {
  10. const MainPage({super.key});
  11. //启动当前页面
  12. static void startInstance({BuildContext? context}) {
  13. if (context != null) {
  14. context.router.popUntilRoot();
  15. context.router.replace(const MainPageRoute());
  16. } else {
  17. appRouter.popUntilRoot();
  18. appRouter.replace(const MainPageRoute());
  19. }
  20. }
  21. @override
  22. Widget build(BuildContext context, WidgetRef ref) {
  23. return AutoTabsScaffold(
  24. routes: const [
  25. HomePageRoute(),
  26. VisitorPageRoute(),
  27. FeedbackPageRoute(),
  28. MePageRoute(),
  29. ],
  30. bottomNavigationBuilder: (context, tabsRouter) {
  31. return BottomNavigationBar(
  32. unselectedItemColor: Colors.grey[500],
  33. elevation: 20,
  34. type: BottomNavigationBarType.fixed,
  35. currentIndex: tabsRouter.activeIndex,
  36. onTap: tabsRouter.setActiveIndex,
  37. items: const [
  38. BottomNavigationBarItem(
  39. icon: Icon(Icons.home),
  40. label: 'Home',
  41. ),
  42. BottomNavigationBarItem(
  43. icon: Icon(Icons.card_giftcard),
  44. label: 'Visitor',
  45. ),
  46. BottomNavigationBarItem(
  47. icon: Icon(Icons.feed),
  48. label: 'Feedback',
  49. ),
  50. BottomNavigationBarItem(
  51. icon: Icon(Icons.person),
  52. label: 'Me',
  53. ),
  54. ],
  55. );
  56. },
  57. );
  58. }
  59. }