调用Navigator.of(context).push()时仅替换子级

时间:2020-05-09 18:24:36

标签: flutter

我正在创建“图片中的图片”小部件,然后渲染两个屏幕,一个屏幕在浮动,另一个屏幕在后台(都是脚手架)。当我使用Navigator.of(context).push()时,我只想替换背景视图。我得到的当前行为是将一个屏幕推到两个屏幕上。有什么方法可以创建子导航器?我在考虑可以这样使用的东西:

Navigator(
  child: MyWidget(),
)

在执行此操作后,当我调用Navigator.of(context)时,将返回此导航器,并且该导航器将仅替换子窗口小部件。

为了更好地理解我在说什么,我制作了一段有关当前行为的视频:

https://youtu.be/L4V4bcZAppI

1 个答案:

答案 0 :(得分:0)

通过寻找其他关键字Overlay而不是SubNavigator,我找到了问题的答案: https://stackoverflow.com/a/57073347/8633918

我要的东西存在,但是没有调用属性child,而是将其称为onGenerateRoute,并且有点复杂。使用方法如下:

Navigator(
  onGenerateRoute: (settings) {
    return MaterialPageRoute(builder: (_) => MyWidget());
  }
)

以下是具有预期行为的视频:

https://youtu.be/CZ9pFHsARdw