小编典典

Flutter:使用导航器推到新屏幕时,保持BottomNavigationBar

flutter

在iOS中,我们有一个UITabBarController,当我们推送到一个新的ViewController时,它会永久停留在屏幕底部。

在Flutter中,我们有一个Scaffold的bottomNavigationBar。但是,与iOS不同,当我们Navigator.push转到新屏幕时,该bottomNavigationBar消失了。

在我的应用程序,我想满足这一要求:主屏幕上有一个bottomNavigationBar与2项( b )提示画面
。默认情况下,屏幕上 一个 显示。在屏幕 A内 ,有一个按钮。点击该按钮, Navigator.push屏幕 Ç 。现在在屏幕 C中
,我们仍然可以看到bottomNavigationBar。轻按项目 b ,我去屏幕 。现在,在屏幕 ,龙头项目
bottomNavigationBar,我回去屏幕 Ç (不是 一个一个 是目前低于 Ç 在导航层次结构中)。

我怎样才能做到这一点?多谢你们。

编辑:我包括一些图片进行演示:

屏幕A 屏幕A

点击“ 转到C” 按钮,推至屏幕C 屏幕C

点击底部导航栏中的“ 右” 项目,转到屏幕B 屏幕B


阅读 535

收藏
2020-08-13

共1个答案

小编典典

tl;
dr:将CupertinoTabBarCupertinoTabScaffold一起使用

就像RémiRousselet提到的那样,问题不在Flutter中,而在UX中。

事实证明,Material Design不建议使用层次结构中的子页面来访问“底部”导航栏。

但是,《
iOS人机界面指南》建议这样做。因此,要使用此功能,我必须改编Cupertino小部件而不是Material部件。具体来说,主要是返回WidgetsApp/MaterialApp包含的CupertinoTabScaffold。使用来实现选项卡栏,CupertinoTabBar并且每个屏幕都是一个CupertinoTabView

2020-08-13