我正在尝试在 Flutter 中设置一个多页面应用程序,其中底部选项卡包含四个最常用的页面,包括一个“更多”按钮。更多按钮显示包含其他页面链接的页面。当点击某个页面时,我希望这个页面取代“更多”页面,因此创建了一个新的导航堆栈。但是,当切换到另一个选项卡然后返回“更多”选项卡时,导航状态会被记住。这意味着我没有看到“更多”页面,而是看到切换选项卡时离开的页面。我想每次用户单击“更多”选项卡时显示“更多”页面。
我尝试过使用导航器的pushReplacement方法,因此当用户单击更多页面时,他无法导航回更多页面列表。但是,当切换选项卡时,更多页面现在永远不会显示,因为它已被替换。
我还尝试调整选项卡回调方法,以弹出所有视图并将导航器返回到更多屏幕。然而,这给我在控制台中留下了一个错误:setState() or markNeedsBuild() called during build.。
选项卡屏幕:
class TabScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return TabScreenState();
}
}
class TabScreenState extends State<TabScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: WillPopScope(
// Prevent swipe popping of this page. Use explicit exit buttons only.
onWillPop: () => Future<bool>.value(true),
child: CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('Artikelen'),
),
BottomNavigationBarItem(
icon: Icon(Icons.message),
title: Text('Activiteiten'),
),
BottomNavigationBarItem(
icon: Icon(Icons.speaker_group),
title: Text('Training'), …Run Code Online (Sandbox Code Playgroud)