【问题标题】:How to get top most screens route name如何获得最顶部的屏幕路线名称
【发布时间】:2020-11-27 14:49:52
【问题描述】:

我正在关注这个Navigate with named routes。我正在传递路线名称以查看新屏幕。

Navigator.pushNamed(context, '/second');

所以,我需要的是最上面的屏幕路由名称。在这种情况下/second。 我怎样才能得到它?

【问题讨论】:

  • 检查ModalRoute.of静态方法
  • 嗨@pskink,使用ModalRoute.of(context).settings.name,但它一直返回/
  • 你确定你使用了正确的上下文吗?
  • 我需要来自另一个子小部件的那个

标签: flutter dart routes navigation


【解决方案1】:

除了Modal.of(context),flutter 没有提供任何更简单的方法来获取最新的路由名称。 但是任何使用onRouteGenerated 属性使用路由处理的人都可以这样做

class AllRoutes{
  static String _lastRoute = "/";

  static Route onGenerated(RouteSettings settings){
    _lastRoute = settings.name;
    //handle route changes here rather passing the route Map to the App
  }  
  static String get lastRoute=>_lastRoute;
}

并将静态方法添加为App的onGenerateRoute属性值

MaterialApp(
   onGenerateRoute: AllRoutes.onGenerated,
  )

并像这样获得最后一条路线

var lastRoute = AllRoutes.lastRoute

您可以将其添加为Navigator 的扩展名,以便您有宾至如归的感觉;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2012-08-05
    • 2022-11-02
    • 2021-07-04
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多