Flutter 利用路由监听页面的展示与否

1、新建routeMonitor.dart文件:

import 'package:flutter/material.dart';

class AppRouteObserver {
   
  //这是实际上的路由监听器
  static final RouteObserver<ModalRoute<void>> _routeObserver =
      RouteObserver<ModalRoute<void>>();
  //这是个单例
  static final AppRouteObserver _appRouteObserver =
      AppRouteObserver._internal();

  AppRouteObserver._internal();
  //通过单例的get方法轻松获取路由监听器
  RouteObserver<ModalRoute<void>> get routeObserver {
   
    return _routeObserver;
  }

  factory AppRouteObserver() {
   
    return _appRouteObserver;
  }
}

2、修改main.dart:

MaterialApp(
      navigatorObservers: [AppRouteObserver().routeObserver],
);

3.监听页面显隐的页面

class _XXX extends State<XXX> with RouteAware {
   
...
  
  void didChangeDependencies() {
   
    // TODO: implement didChangeDependencies
    super.didChangeDependencies();

    /// 路由订阅
    AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
  }

  
  void dispose() {
   
    // TODO: implement dispose
    /// 取消路由订阅
    AppRouteObserver().routeObserver.unsubscribe(this);
    super.dispose();
  }

  
  void didPush() {
   
    print('跳转该页面而显示');
  }

  
  void didPop() {
   
    print('当前页面被pop而隐藏');
  }

  
  void didPopNext() {
   
    print('上一个页面关闭而显示');
  }

  
  void didPushNext() {
   
    print('跳转下一个页面而隐藏');
  }
  ...
}

相关推荐

  1. Flutter 利用监听页面展示与否

    2023-12-29 12:18:02       39 阅读
  2. flutter 配置

    2023-12-29 12:18:02       39 阅读
  3. flutter页面异常监测

    2023-12-29 12:18:02       12 阅读
  4. flutter跳转

    2023-12-29 12:18:02       15 阅读
  5. Flutter几种用法

    2023-12-29 12:18:02       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-29 12:18:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-29 12:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-29 12:18:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-29 12:18:02       20 阅读

热门阅读

  1. blob文件流前端显示pdf

    2023-12-29 12:18:02       23 阅读
  2. 相比于其他流处理技术,Flink的优点在哪?

    2023-12-29 12:18:02       32 阅读
  3. Linux实现ssh公钥登录的步骤

    2023-12-29 12:18:02       39 阅读
  4. linux firewalld简介

    2023-12-29 12:18:02       38 阅读
  5. 面试经典150题(55-58)

    2023-12-29 12:18:02       38 阅读
  6. 【数据库】PostgreSQL中的DISTINCT ON和DISTINCT的区别

    2023-12-29 12:18:02       36 阅读
  7. MD5算法

    MD5算法

    2023-12-29 12:18:02      37 阅读