【问题标题】:didPopNext isn't called when poping rootNavigator route back to CupertinoTabView route将 rootNavigator 路由弹出回 CupertinoTabView 路由时不调用 didPopNext
【发布时间】:2020-08-26 06:42:22
【问题描述】:

我的应用正在使用 CupertinoTabScaffold 和 CupertinoTabView,它们使用自己的导航器(不是根导航器)。要打开一个应该覆盖整个屏幕(也是选项卡)的某个屏幕,我正在使用 Navigator.of(context, rootNavigator: true).push。 问题是出于不同的目的,我正在使用 routeObserver 和 RouteAware 跟踪屏幕更改。我发现对于上面提到的使用根导航器打开屏幕的情况,关闭全屏页面时不会调用didPopNext。我假设这与关闭此屏幕 Flutter 从根导航器切换回 CupertinoTabView 的事实有某种关系。 知道如何解决吗?

【问题讨论】:

    标签: flutter flutter-navigation


    【解决方案1】:

    你应该添加这个:

    
      @override
      void didChangeDependencies() {
        super.didChangeDependencies();
        // add this
        routeObserver.subscribe(this, ModalRoute.of(context));
      }
    
      @override
      void dispose() {
        routeObserver.unsubscribe(this);
        super.dispose();
      }
    
    final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
    ...
    
    MaterialApp(
                  navigatorObservers: [routeObserver],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-30
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      相关资源
      最近更新 更多