部分屏幕的颤动导航

问题描述 投票:4回答:1

如何在另一个小部件的框架中推送小部件?例如,我有一个带有2个容器的列,其中每个容器占用一半的屏幕。我想做一个导航,例如仅在底部容器中。当容器视图拥有自己的UINavigationController时,与iOS中的逻辑相同。

据我所知,MaterialPageRoute只能将小部件推送到全屏,并且没有任何其他Route类,除了抽象类。也许我应该创建自己的ModalRoute / TransitionRoute子类?

flutter flutter-layout
1个回答
4
投票

您可以使用Navigator小部件在您的应用中提供任意数量的单个导航器。每个导航器都将维护自己的导航堆栈。例如,如果您希望垂直拆分应用程序,每个半部分都有自己的导航堆栈:

Column(
  children: <Widget>[
    Navigator(...),
    Navigator(...)
  ]
)

如果你这样做,你应该考虑如何处理Android后退按钮(现在技术上你的应用程序中有3个导航器)。默认情况下,它只会监听您的根导航器,因此您必须在窗口小部件层次结构中的某处提供WillPopScope窗口小部件,以捕获后退按钮事件并从相应的导航器弹出。

© www.soinside.com 2019 - 2024. All rights reserved.