flutter 应用场景_Flutter上线项目实战记录之路由篇

1. 应用场景

开发中经常遇到

路由跳转时拿不到context怎么办,eg: token失效/异地登录跳转登录页面。

获取不到当前路由名称怎么办,eg: 点击push推送跳转指定路由,如果已经在当前页面就replace,如果不在就push。

注册监听路由跳转,做一些想做的事情 ,eg:不同路由,显示不同状态栏颜色。

等等...

2. 解决方案

解决思路:

MaterialApp 的routes属性赋值路由数组,navigatorObservers属性赋值路由监听对象NavigatorManager。

在NavigatorManager里实现NavigatorObserver的didPush/didReplace/didPop/didRemove,并记录到路由栈List _mRoutes中。

将实时记录的路由跳转,用stream发一个广播,哪里需要哪里注册。

3. 具体实现

main.dart

MaterialApp(

navigatorObservers: [NavigatorManager.getInstance()],routes: NavigatorManager.configRoutes,...

)

navigator_manager.dart

class NavigatorManager extends NavigatorObserver {

/* 配置routes */

static Map configRoutes = {

PackageInfoPage.sName: (context) =>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值