我使用auto_route包来实现一个选项卡栏和块,以便为页面提供状态。我的问题是,块不关闭时,导航之间的标签。第一次选择标签时,它会打开肘节,但永远不会关闭它。
下面是我的代码:
AppRouter:
@AutoRouterConfig()
class AppRouter extends _$AppRouter {
@override
List<AutoRoute> get routes => [
AutoRoute(
path: '/',
page: AppWrapperRoute.page,
initial: true,
children: [
AutoRoute(
path: 'tab',
page: TabBarRoute.page,
children: [
AutoRoute(path: 'page1', page: Page1Route.page),
AutoRoute(path: 'page2', page: Page2Route.page),
AutoRoute(path: 'page3', page: ProfileRoute.page),
],
),
],
),
];
}
TabBar:
@RoutePage(name: 'TabBarRoute')
class AutoTapBar extends StatelessWidget {
const AutoTapBar({super.key});
@override
Widget build(BuildContext context) {
return AutoTabsScaffold(
routes: const [
Page1Route(),
Page2Route(),
Page3Route(),
],
bottomNavigationBuilder: (_, tabsRouter) {
return BottomNavigationBar(
currentIndex: tabsRouter.activeIndex,
onTap: tabsRouter.setActiveIndex,
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Page1',
),
BottomNavigationBarItem(
icon: Icon(Icons.streetview),
label: 'Page2',
),
BottomNavigationBarItem(
icon: Icon(Icons.account_circle),
label: 'Page3',
),
],
);
},
);
}
}
第三页:
@RoutePage(name: 'ProfileRoute')
class Page3Screen extends StatelessWidget {
const Page3Screen({super.key});
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (_) => di.getIt<Page3ScreenCubit>(),
child: const _Page3Screen(),
);
}
}
我谷歌了一下,找不到答案。
1条答案
按热度按时间qkf9rpyu1#
在打开问题后,找到了解决方案...
你必须在你的路线中将状态设置为false: