这是我的代码。成功更改屏幕,但活动选项卡未更改。任何帮助?我想,如果例如它点击配置文件,它将自动显示,配置文件标签是活动的。
class BottomNavBar extends StatefulWidget {
const BottomNavBar({super.key});
@override
_BottomNavBarState createState() => _BottomNavBarState();
}
class _BottomNavBarState extends State<BottomNavBar> {
int _selectedIndex = 0;
static final List<String> _routeNames = [
'/home',
'/booking',
'/settings',
'/profile'
];
... designs in omy code and Gnav Widget
Gnav(tabs: const [
GButton(
icon: LineIcons.home,
text: 'Home',
),
GButton(
icon: LineIcons.bookOpen,
text: 'Bookings',
),
GButton(
icon: LineIcons.cog,
text: 'Settings',
),
GButton(
icon: LineIcons.user,
text: 'Profile',
),
],)
selectedIndex: _selectedIndex,
onTabChange: (index) {
setState(() {
selectedIndex = index;
final goRouter = GoRouter.of(context);
goRouter.push(_routeNames[index]);
});
},
2条答案
按热度按时间2hh7jdfx1#
在
setState
上,您正在导航到新页面。我想这就是问题的根源。不需要导航到一个新页面,您可以只在同一个scaffold中将所选索引的页面显示为子级。
你可以这样做
cwtwac6a2#
检查包中提供的示例:https://pub.dev/packages/google_nav_bar/example下面是内容: