导航器应该与库比蒂诺标签栏一起使用吗?



我正在学习颤振,并从一个简单的 2 选项卡、底部导航栏应用程序(特别是基于库比蒂诺)开始。这个视频在解释基本原理方面做得很好,但我错过了一些东西。

视频中提供的示例表明,当您点击BottomNavigationBarItem时,您实际上并没有导航到新屏幕,您只需在现有屏幕上重新渲染小部件。视频仅在Navigator在页面容器中构造按钮小部件后

调用。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方法导航到其他路线/屏幕。

这有意义的主要原因是每个索引/屏幕都维护自己的导航堆栈,因此您可以在屏幕(索引)1上,导航几个页面,转到索引0并返回,并保留您的导航堆栈状态。

我花了几次阅读CupertinoTabScaffold上的文档才能将其钻入我的大脑,但这是有道理的。

如果我错了,请告诉我。

相关内容

  • 没有找到相关文章

最新更新