为啥 Flutter Navigator 2.0 示例中没有返回按钮?

Posted

技术标签:

【中文标题】为啥 Flutter Navigator 2.0 示例中没有返回按钮?【英文标题】:Why is there no back button in the Flutter Navigator 2.0 Example?为什么 Flutter Navigator 2.0 示例中没有返回按钮? 【发布时间】:2021-05-10 07:21:37 【问题描述】:

当我开始开发 Flutter 应用程序时,我遇到了 Navigator 2.0。正如文档所建议的那样,我使用了 John Ryan 在文档中提供的代码:https://medium.com/flutter/learning-flutters-new-navigation-and-routing-system-7c9068155ade。

我的问题是没有嵌套导航的示例有一个自动显示的后退按钮,但带有嵌套导航的example 没有。为什么会这样,有没有办法让后退按钮自动生成?

我正在使用 Flutter 1.25.0-8.2.pre beta 通道。

提前谢谢你!

【问题讨论】:

【参考方案1】:

您的处理程序应指示不应关闭封闭路由,因此返回 false 将解决您的问题。

将您的处理程序更改为此工作:

    onWillPop: () async 
      navigatorKey.currentState.maybePop();
      return false;
    ,

【讨论】:

您好,谢谢您的回答。我不知道在哪里放置此代码或您的意思是哪个处理程序。 onWillPop 似乎是 WillPopScope 的一个属性,但我不知道我必须在子属性中包装什么。能详细解释一下吗?【参考方案2】:

我无法真正解决这个问题。据我所知,它与嵌套的路由器委托有关。但是,我已经实现了一个扁平结构,它只使用一个路由器委托,并且工作正常。

【讨论】:

以上是关于为啥 Flutter Navigator 2.0 示例中没有返回按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Navigator 2.0 页面过渡

Flutter Navigator 2.0 中 route.didPop(result) 何时等于 false

Navigator 2.0 和抽屉

Flutter & Navigator & ImagePicker : 为啥我可以进入下一页?查找已停用小部件的祖先是不安全的

Flutter:Navigator2.0介绍及使用

为啥 Navigator.pushNamed(context, "route");在我的 flutter-cupertino-app 代码示例中工作?