together_mobile/lib/screens/home/home_screen.dart

78 lines
1.8 KiB
Dart

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<HomeScreenWithNavBar> createState() => _HomeScreenWithNavBarState();
}
class _HomeScreenWithNavBarState extends State<HomeScreenWithNavBar> {
// 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;
}
}
}