我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Flutter的路由router-页面跳转

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Flutter的路由router-页面跳转

扫城堡有惊喜

文章目录

概念介绍

在Flutter中,路由(Router)是用于管理不同页面之间导航的机制。它允许您在应用程序中切换和管理不同的屏幕或视图。Flutter提供了多种方式来实现路由,包括基本路由、命名路由和第三方路由管理库。下面是对这些不同方式的详细介绍:

基本路由(Basic Routing)

Flutter提供了一种基本的路由管理方式,通过Navigator类来实现。Navigator类提供了一组方法,用于在应用程序的不同页面之间进行导航,例如push、pop和pushReplacement等。您可以使用这些方法在堆栈中推送或弹出页面,实现页面之间的切换和管理。

跳转到某个页面

//跳转到页面Navigator.push(  context,  MaterialPageRoute(builder: (context) => SecondScreen()),);

弹出页面

Navigator.of(context).pop();

上面的示例代码演示了如何使用Navigator.push方法将应用程序从当前页面切换到名为SecondScreen的新页面。基本路由适用于简单的导航场景,但在大型应用程序中可能需要更高级的路由管理。

命名路由(Named Routing)

命名路由是一种更高级的路由管理方式,通过给每个页面分配唯一的名称,并使用这些名称进行导航。它提供了更清晰和可维护的路由配置方式,并支持参数传递。

首先,在应用程序的MaterialApp中配置命名路由表:

MaterialApp(  routes: {    '/': (context) => HomeScreen(),    '/second': (context) => SecondScreen(),  },)

然后,使用Navigator.pushNamed方法导航到指定的命名路由:

Navigator.pushNamed(context, '/second');

命名路由提供了一种更结构化和清晰的方式来配置和管理应用程序的路由。它适用于中小型应用程序,并且在需要扩展或修改路由时更加灵活。

第三方路由管理库(Third-Party Routing Libraries)

除了Flutter提供的基本路由和命名路由,还有一些强大的第三方路由管理库可供选择,例如fluro、auto_route、get等。这些库提供了更高级和更灵活的路由管理功能。

这些库通常提供了更强大的路由配置方式、参数传递、路由拦截、动画效果、路由传参、深层链接等功能。它们可以帮助您更好地组织和管理应用程序的路由,并提供更好的用户导航体验。

例如,使用fluro库配置和导航到命名路由的示例代码如下:

final router = FluroRouter();router.define('/second', handler: Handler(handlerFunc: (context, params) => SecondScreen()));// 导航到命名路由router.navigateTo(context, '/second');

第三方路由管理库通常具有更复杂的配置和使用方式,但它们提供了更高级和灵活的路由管理功能,适用于大型应用程序或需要更复杂导航逻辑的场景。

Android原生的路由

在原生Android开发中,路由(Routing)是指通过特定的机制将用户从一个界面(Activity)导航到另一个界面的过程。
Android提供了多种方式来实现页面导航和路由管理,其中最常用的方式是使用Intent和Manifest文件。

Intent-based Routing(基于Intent的路由)

在Android中,Intent是一种用于在组件之间传递消息和触发操作的机制。通过使用Intent,可以实现页面之间的导航和通信。

使用隐式Intent进行路由

在Android中,可以使用隐式Intent来指定要启动的目标Activity。通过设置Intent的Action、Category和Data等属性,可以将用户导航到匹配指定条件的Activity。

Intent intent = new Intent();intent.setAction("com.example.ACTION_PROFILE");intent.setData(Uri.parse("http://example.com/profile/123"));startActivity(intent);

上述示例中,我们创建了一个隐式Intent,并设置了Action为"com.example.ACTION_PROFILE",Data为"http://example.com/profile/123"。系统会根据Intent的条件匹配来查找并启动匹配的Activity。

使用显式Intent进行路由

除了隐式Intent,还可以使用显式Intent来直接指定要启动的目标Activity的类名。

Intent intent = new Intent(MainActivity.this, ProfileActivity.class);intent.putExtra("userId", "123");startActivity(intent);

上述示例中,我们创建了一个显式Intent,并指定了目标Activity的类名为ProfileActivity。同时,我们还可以通过Intent的putExtra方法传递参数给目标Activity。

Manifest-based Routing(基于Manifest的路由)

Android的Manifest文件(AndroidManifest.xml)是应用程序的配置文件,其中包含了应用程序的元数据和组件声明。通过在Manifest文件中声明Activity和设置其Intent过滤器,可以实现基于Manifest的路由。

<activity    android:name=".ProfileActivity"    android:label="Profile">    <intent-filter>        <action android:name="com.example.ACTION_PROFILE" />        <category android:name="android.intent.category.DEFAULT" />        <data android:scheme="http"            android:host="example.com"            android:pathPrefix="/profile/" />    intent-filter>activity>

在上述示例中,我们在Manifest文件中声明了一个ProfileActivity,并设置了其Intent过滤器。通过设置Action为"com.example.ACTION_PROFILE"和Data为"http://example.com/profile/",我们指定了ProfileActivity可以处理满足这些条件的Intent。

当满足指定条件的Intent被触发时,Android系统会根据Manifest文件中的配置,自动找到匹配的Activity并启动。

这些是原生Android开发中常用的路由实现方式。Intent和Manifest文件提供了强大的机制来管理页面的导航和路由。通过使用Intent和Manifest文件,开发者可以灵活地定义和配置Activity之间的导航关系,并实现复杂的页面跳转逻辑。

对比下Flutter的路由和原生Android的路由,能更好的理解flutter的路由。

总结

通过使用这些不同的路由管理方式,您可以根据应用程序的规模和需求选择最适合的方式来管理和处理Flutter应用程序中的页面导航。无论是基本路由、命名路由还是第三方路由管理库,它们都提供了一种方便的方式来实现页面之间的切换和导航。

来源地址:https://blog.csdn.net/yikezhuixun/article/details/132988604

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Flutter的路由router-页面跳转

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue3配置router路由并实现页面跳转功能

这篇文章主要介绍了vue3配置router路由并实现页面跳转,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-17

vue-router是如何实现路由跳转和页面渲染的

Vue-router是Vue.js官方的路由管理工具,支持基于Vue.js构建单页应用(SPA),它提供的路由功能让我们能够通过管理URL中的路径,来控制页面的跳转和展示。本文将着重探讨 Vue-router 的底层实现原理,分析 Vue-router 是如何实现路由跳转和页面渲染的。一、Vue-router的基本使用使用 Vue-router,我们需要进行以下步骤:1. 安装
2023-05-14

react-router-dom路由跳转怎么实现

react-router-dom路由跳转的实现方法:1、打开相应的js文件;2、通过useNavigate方法手动操作进行路由跳转;3、通过state属性进行路由传值,并用useLocation方法获取参数。
2023-05-14

vue3.0 router路由跳转传参问题(router.push)

这篇文章主要介绍了vue3.0 router路由跳转传参问题(router.push),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-15

react-router-dom路由跳转如何实现

这篇“react-router-dom路由跳转如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react-router
2023-07-04

vue router路由跳转方法是什么

本文小编为大家详细介绍“vue router路由跳转方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue router路由跳转方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。通过router-
2023-07-06

Vue实现路由跳转至外界页面

这篇文章主要介绍了Vue实现路由跳转至外界页面方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-09

Vue路由跳转传参或者打开新页面跳转问题

这篇文章主要介绍了Vue路由跳转传参或者打开新页面跳转问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-11

react跳转路由页面空白如何解决

这篇文章主要讲解了“react跳转路由页面空白如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react跳转路由页面空白如何解决”吧!react跳转路由页面空白是因为写法错误,其解决办
2023-07-05

使用Vue-router二级路由跳转另一条路由下的子级

这篇文章主要介绍了使用Vue-router二级路由跳转另一条路由下的子级问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

vue如何使用router-link实现路由跳转

这篇文章主要介绍vue如何使用router-link实现路由跳转,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!router-link 【实现跳转最简单的方法】
2023-06-18

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录