Navigator 是否应该与 CupertinoTabBar 一起使用?
Should Navigator be used in tandem with a CupertinoTabBar?
我正在学习 flutter,并从一个简单的 2 选项卡、底部导航栏应用程序(特别是基于 Cupertino)开始。 This video 很好地解释了基础知识,但我遗漏了一些东西。
视频中提供的示例表明,当您点击 BottomNavigationBarItem
时,您实际上并没有 导航 到新屏幕,您只是 重新呈现 现有屏幕上的小部件。视频只调用了Navigator
他在页面容器中构造了一个按钮widget后
CupertinoTabBar
中的 BottomNavigationBarItem
是否应该调用 Navigator
?还是我完全误解了 CupertinoTabBar
的用例?
这是我的示例代码:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class HomeScreen extends StatelessWidget
{
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: <BottomNavigationBarItem> [
BottomNavigationBarItem(
icon: Icon(Icons.menu),
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.person_solid),
),
],
),
tabBuilder: (BuildContext context, int index) {
switch (index) {
case 0:
return new Container(
color: Colors.red
); break;
case 1:
return new Container(
color: Colors.white
); break;
default: {
return new Container(
color: Colors.white
);
}
}
},
);
}
}
我想知道如何更改 switch
以调用或不调用 Navigator
。
所以看起来正确的模式是:
通过 BottomNavigationBarItem
导航到的 CupertinoTabBar
索引/屏幕实际上只是 CupertinoPageScaffold
小部件。然后在这些 CupertinoPageScaffold
屏幕中,您可以使用 Navigator
方法导航到 other 路线/屏幕。
这有意义的主要原因是每个索引/屏幕都维护自己的导航堆栈,因此您可以在屏幕(索引)1 上导航几页,转到索引 0 并返回,您的导航堆栈状态为保存。
documentation on CupertinoTabScaffold 我花了好几遍才把它牢记在心,但它是有道理的。
如果我在这方面有误,请告诉我。
我正在学习 flutter,并从一个简单的 2 选项卡、底部导航栏应用程序(特别是基于 Cupertino)开始。 This video 很好地解释了基础知识,但我遗漏了一些东西。
视频中提供的示例表明,当您点击 BottomNavigationBarItem
时,您实际上并没有 导航 到新屏幕,您只是 重新呈现 现有屏幕上的小部件。视频只调用了Navigator
他在页面容器中构造了一个按钮widget后
CupertinoTabBar
中的 BottomNavigationBarItem
是否应该调用 Navigator
?还是我完全误解了 CupertinoTabBar
的用例?
这是我的示例代码:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class HomeScreen extends StatelessWidget
{
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: <BottomNavigationBarItem> [
BottomNavigationBarItem(
icon: Icon(Icons.menu),
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.person_solid),
),
],
),
tabBuilder: (BuildContext context, int index) {
switch (index) {
case 0:
return new Container(
color: Colors.red
); break;
case 1:
return new Container(
color: Colors.white
); break;
default: {
return new Container(
color: Colors.white
);
}
}
},
);
}
}
我想知道如何更改 switch
以调用或不调用 Navigator
。
所以看起来正确的模式是:
通过 BottomNavigationBarItem
导航到的 CupertinoTabBar
索引/屏幕实际上只是 CupertinoPageScaffold
小部件。然后在这些 CupertinoPageScaffold
屏幕中,您可以使用 Navigator
方法导航到 other 路线/屏幕。
这有意义的主要原因是每个索引/屏幕都维护自己的导航堆栈,因此您可以在屏幕(索引)1 上导航几页,转到索引 0 并返回,您的导航堆栈状态为保存。
documentation on CupertinoTabScaffold 我花了好几遍才把它牢记在心,但它是有道理的。
如果我在这方面有误,请告诉我。