Android开发flutter路由管理

一、术语

路由(route)

  • 在 Flutter 中,屏 (screen) 和 页面 (page) 都叫做 路由 (route)。
  • 在 Android 开发中,Activity 相当于“路由”,在 iOS 开发中,ViewController 相当于“路由”。在 Flutter 中,“路由”也是一个 widget。

导航(Navigator):

  • Navigator是一个路由管理的组件,它提供了打开和退出路由页方法。[Navigator官方链接]
  • Navigator常用的路由管理方法包括pushpop

概述

  • 路由在移动开发中通常指页面,在Android中通常指代一个Activity。Flutter中的路由管理与原生开发较类似,路由管理指页面跳转关系。
  • 路由入栈(push)操作对应打开一个新页面,出栈(pop)操作对应关闭页面。

1、简单路由

  • 入栈,即新开一个页面,需要调用Future push(BuildContext context, Route route)
  • 出栈,即关闭页面,需要调用pop(BuildContext context, [ T? result ])
  • Navigator:这是一个组件,用于管理和维护一个基于栈堆的历史记录,通过pushpop进行页面的跳转。

入栈

Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => NewPage()),
);


出栈

Navigator.pop(context);


maybePop()

maybePop方法只会在路由堆栈有可弹路由时才会出栈。

Navigator.maybePop(context);


canPop()

canPop方法可以判断当前路由堆栈是否可以出栈。

if (Navigator.canPop(context)) {
    Navigator.pop(context);
}


pushReplacement()

pushReplacement方法可以用于切换路由页面。

Navigator.pushReplacement(
    context,
    MaterialPageRoute(builder: (context) => NewPage()),
);


pushAndRemoveUntil()

进入新页面并之前所有页面。

Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) {
    return FourthPage();
}), (route) => false);


2、路由定义(命名路由)

在App中定义router:
routes: {
          '/': (context) => const HomePage(),
          '/second': (context) => const SecondScreen(),
        }

3、Navigator方法介绍

1.Navigator.push

  • push(BuildContext context, Route route)

将给定的路由入栈(即打开新的页面),返回值是一个Future对象,用以接收新路由出栈(即关闭)时的返回数据。

  • pushNamed(BuildContext context, String routeName, {Object? arguments,})

将给定的路由名入栈,返回值是一个Future对象,用以接收新路由出栈(即关闭)时的返回数据。

2.Navigor.pop

  • pop(BuildContext context, [ T? result ])

将栈顶路由出栈,result为页面关闭时返回给上一个页面的数据

3.其他

Navigator还有很多其他方法,如Navigator.replaceNavigator.popUntil等。

最后说一下我的学习路线

其实很简单就下面这张图,含概了Android所有需要学的知识点,一共8大板块:

  1. 架构师筑基必备技能
  2. Android框架体系架构(高级UI+FrameWork源码)
  3. 360°Androidapp全方位性能调优
  4. 设计思想解读开源框架
  5. NDK模块开发
  6. 移动架构师专题项目实战环节
  7. 移动架构师不可不学习微信小程序
  8. 混合开发的flutter

Android开发flutter路由管理_第1张图片

Android学习的资料

我呢,把上面八大板块的分支都系统的做了一份学习系统的资料和视频,大概就下面这些,我就不全部写出来了,不然太长了影响大家的阅读。需要的小伙伴可以私信我【进阶】我免费分享给大家,或者直接扫描下方二维码领取,谢谢大家这么久以来的支持。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uWpDJ2ds-1679391066561)(C:\Users\admin\Desktop\CSDN引流二维码\1.png)]

Android学习PDF+架构视频+面试文档+源码笔记

如果你有其他需要的话,也可以在GitHub上查看,下面的资料也会陆续上传到Github

330页PDF Android学习核心笔记(内含上面8大板块)

Android开发flutter路由管理_第2张图片

Android学习的系统对应视频

Android开发flutter路由管理_第3张图片

总结

我希望通过我自己的学习方法来帮助大家去提升技术:

  • 1、多看书、看源码和做项目,平时多种总结

  • 2、不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理

  • 3、同时对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习

  • 4、android的方向也很多,高级UI,移动架构师,数据结构与算法和音视频FFMpeg解码,如果你对其中一项比较感兴趣,就大胆的进阶吧!

  • 进阶学习资料领取方式:

希望大家多多点赞,转发,评论加关注,你们的支持就是我继续下去的动力!加油!

你可能感兴趣的:(android,flutter,ios)