使用通过使用WillPopScope这个widget来监听

首先在入口文件的上方创建一个全局变量

final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();

然后在路由配置里面添加监听器

MaterialApp(
        // ...
        navigatorObservers: <NavigatorObserver>[routeObserver],
       
      ),

最后在你需要用到监听的页面使用就好了

//添加订阅者  with RouteAware

class _MyPageWidgetState extends State<MyPageWidget> with RouteAware {
  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    routeObserver.subscribe(this, ModalRoute.of(context));
  }

  @override
  void dispose() {
    routeObserver.unsubscribe(this);
    super.dispose();
  }

  void didPopNext() {
    debugPrint("didPopNext ${runtimeType}");
  }

  void didPush() {
    debugPrint("didPush ${runtimeType}");
  }

  void didPop() {
    debugPrint("didPop ${runtimeType}");
  }
  
  void didPushNext() {
    debugPrint("didPushNext ${runtimeType}");
  }
}

ps:新手小白,借鉴 大招至胜   http://t.csdn.cn/DRVOa    只为记录问题,
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐