import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; class HomeScreenWithNavBar extends StatefulWidget { const HomeScreenWithNavBar({ super.key, required this.initIndex, required this.child, this.listController, }); final int initIndex; final Widget child; // used to get back to top final ScrollController? listController; @override State createState() => _HomeScreenWithNavBarState(); } class _HomeScreenWithNavBarState extends State { // int _selectedIndex = 0; // @override // void initState() { // super.initState(); // _selectedIndex = widget.initIndex; // } @override Widget build(BuildContext context) { return Scaffold( body: widget.child, bottomNavigationBar: BottomNavigationBar( backgroundColor: Theme.of(context).bottomNavigationBarTheme.backgroundColor, items: const [ BottomNavigationBarItem( icon: Icon(Icons.message), label: '消息', ), BottomNavigationBarItem( icon: Icon(Icons.contacts), label: '通讯录', ), BottomNavigationBarItem( icon: Icon(Icons.star), label: '更多', ), ], onTap: (int index) => _onItemTapped(index, context), currentIndex: widget.initIndex, ), ); } void _onItemTapped(int index, BuildContext context) { // setState(() { // _selectedIndex = index; // }); switch (index) { case 0: GoRouter.of(context).go('/chat'); break; case 1: GoRouter.of(context).go('/contact'); break; case 2: GoRouter.of(context).go('/more'); break; } } }