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