gpt4 book ai didi

flutter - CupertinoTabBar 导航

转载 作者:IT王子 更新时间:2023-10-29 07:01:02 25 4
gpt4 key购买 nike

对于第一个标签栏:我在 DispayMoreScreen 上有一个注销按钮。对于注销按钮操作,应用会正确导航到应用的根目录。

Navigator.of(context).pushReplacementNamed('/')

带工作导航的标签栏:

@override
Widget build(BuildContext context) {
return new Scaffold(
bottomNavigationBar: new Material(
color: Colors.white,
child: new TabBar(controller: controller, labelColor: Colors.blue[900], tabs: <Tab>[
new Tab(icon: new Icon(Icons.local_shipping, color: Colors.blue[900], size: 30.0), text: 'A'),
new Tab(icon: new Icon(Icons.insert_drive_file, color: Colors.blue[900], size: 30.0), text: 'B'),
new Tab(icon: new Icon(Icons.more_horiz, color: Colors.blue[900], size: 30.0), text: 'C'),
])),
body: new TabBarView(controller: controller, children: <Widget>[
new ShipmentScreen.ShipmentTab(),
new InvoiceScreen.InvoiceTab(),
new DisplayMoreScreen.MoreTab(),
])
);
}

但是当我实现 CupertinoTabBar 时,注销后应用程序保持在同一屏幕上。

  @override
Widget build(BuildContext context) {
return new CupertinoTabScaffold(
tabBar: new CupertinoTabBar(
backgroundColor: Colors.white,
activeColor: Colors.blue[900],
items: [
new BottomNavigationBarItem(
icon: new Icon(Icons.local_shipping),
title: new Text("A")
),
new BottomNavigationBarItem(
icon: new Icon(Icons.insert_drive_file),
title: new Text("B")
),
new BottomNavigationBarItem(
icon: new Icon(Icons.more_horiz),
title: new Text("C")
)
]
),
tabBuilder: (BuildContext context, int index) {
return new CupertinoTabView(
builder: (BuildContext context) {
switch(index) {
case 0:
return new ShipmentScreen.ShipmentTab();
case 1:
return new InvoiceScreen.InvoiceTab();
case 2:
return new DisplayMoreScreen.MoreTab();
}
},
);
}

最佳答案

当你点击标签时,你必须 setState():

“这个 [StatelessWidget] 本身不存储事件选项卡。您必须监听 [onTap] 回调并使用新的 [currentIndex] 调用 setState 以反射(reflect)新的选择。”

我还认为构建器中的“switch (index)”应该改为切换到“currentIndex”变量。

关于flutter - CupertinoTabBar 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50238050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com