Flutter 如何使用AppBars选项卡从一个页面切换到另一个页面?

Flutter 如何使用AppBars选项卡从一个页面切换到另一个页面?,flutter,dart,Flutter,Dart,我有一个简单的自定义AppBar,其中包含以下代码(为了简化,我取出了一些代码。这个问题不需要它): 现在我有两个dart文件,其中一个包含第一页的代码,另一个包含第二页的代码 现在,我希望在选择选项卡“1”时打开第一页,在选择选项卡“2”时打开第二页 因此,我考虑定义一个新的小部件来打开相应的页面。以下是我的想法: Widget buildPageOne() { Navigator.of(context) .push( MaterialPageRoute(

我有一个简单的自定义AppBar,其中包含以下代码(为了简化,我取出了一些代码。这个问题不需要它):

现在我有两个dart文件,其中一个包含第一页的代码,另一个包含第二页的代码

现在,我希望在选择选项卡“1”时打开第一页,在选择选项卡“2”时打开第二页

因此,我考虑定义一个新的小部件来打开相应的页面。以下是我的想法:

Widget buildPageOne() {
    Navigator.of(context)
        .push(
      MaterialPageRoute(
          builder: (context) => PageOne()
      ),
    );
  }
我认为最后一个代码示例是完全无用的,但它显示了我的意图

你们能帮我解决这个问题吗

我会很高兴得到答案的!
问候语

不要使用导航到新屏幕的方法。 创建两个单独的无状态或全状态小部件:Widget1()、Widget2()

在TabBarView的childrens中,将这两个小部件用作子部件

body: TabBarView(
      children: [
        Widget1(),
        Widget2(),
      ],
    ),

保存它们,进行热重启

首先,如果您使用的是选项卡,请不要使用Navigator。 其次,您需要一个选项卡控制器来处理选项卡,例如,您可以使用。使用,您可以设置Appbar下方每个选项卡的文本/图标。在应用程序中,您可以设置要显示的小部件。在您的情况下,省略导航器,只提供要在选项卡视图中显示的小部件

DefaultTabController(
  length: 2,
  child: Scaffold(
    appBar: AppBar(
      title: 'Tabs',
      bottom: TabBar(
        tabs:[
          Tab(icon: Icon(Icons.home)),
          Tab(icon: Icon(Icons.settings)),
        ],
      ),
    ),
    body: TabBarView(
      children: [
        Widget1(),
        Widget2()
      ]
      ),
  ),
);

这回答了你的问题吗?我认为这个答案是正确的。但我不知道该怎么办。您可以添加更多的细节吗?只需从tabbarview的子对象中删除buildPageOne和buildPageTwo方法,将它们替换为PageOne()和PageTwo()。。。。。提供的PageOne()和PageTwo()可以是无状态或有状态的小部件
DefaultTabController(
  length: 2,
  child: Scaffold(
    appBar: AppBar(
      title: 'Tabs',
      bottom: TabBar(
        tabs:[
          Tab(icon: Icon(Icons.home)),
          Tab(icon: Icon(Icons.settings)),
        ],
      ),
    ),
    body: TabBarView(
      children: [
        Widget1(),
        Widget2()
      ]
      ),
  ),
);