【问题标题】:Replace only children when calling Navigator.of(context).push()调用 Navigator.of(context).push() 时仅替换子项
【发布时间】:2020-08-25 08:10:52
【问题描述】:

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

Navigator(
  child: MyWidget(),
)

在我调用Navigator.of(context) 之后,这个导航器将被返回,这个导航器只会替换子小部件。

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

https://youtu.be/L4V4bcZAppI

【问题讨论】:

标签: flutter


【解决方案1】:

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

我要求的内容存在,但不是调用属性 child,而是调用 onGenerateRoute,并且有点复杂。以下是您的使用方法:

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

这是一个具有预期行为的视频:

https://youtu.be/CZ9pFHsARdw

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多