使用Flutter的Cupertino小部件,如何在底部标签栏顶部触发水平页面过渡

时间:2018-12-21 20:06:34

标签: ios flutter flutter-navigation flutter-cupertino

代替在其中一个标签内进行常见的水平页面过渡还是在标签栏顶部进行常规的垂直页面过渡,我该如何在标签栏顶部水平地推动页面过渡?

这在中文平台类型的应用程序中很常见。

enter image description here

2 个答案:

答案 0 :(得分:3)

警告:它在iOS中是可以实现的,但不一定是应用程序的良好信息体系结构,也不为Apple的《人机界面指南》所推荐。

请参见App Architecture's NavigationBars' Tab Bars部分。

  

使用标签栏显示内容或功能的对等类别。标签栏使人们可以快速轻松地在类别之间进行切换,无论当前位置如何

  

通常,使用选项卡栏在应用程序级别组织信息。标签栏是扩展信息层次结构并提供一次访问多个同级信息类别或模式的好方法。

在Flutter中,每个标签的内部常见的水平页面过渡的iOS并行导航模式是通过让每个标签具有自己的导航器和导航堆栈(通过CupertinoTabView)来实现的。

要撤消该模式并在选项卡上上方进行水平页面过渡,请不要插入CupertinoTabView作为每个选项卡的根子级。这将删除iOS中常见的并行导航模式。

然后通过以下方式触发常规路线推送:

Navigator.of(context).push(CupertinoPageRoute<void>(
  builder: (BuildContext context) => ...,
);

或类似的东西。

enter image description here

答案 1 :(得分:0)

rootNavigator 设置为 true 可以解决这个问题

Navigator.of(context, rootNavigator: true).push(MaterialPageRoute(
      builder: (context) => NEWROUTE(),
    ));