返回

Flutter 原生路由及其应用

IOS

前言

Flutter 中的路由跳转有两种方法:一种是用系统原生的跳转方法,即“Native Routing”。另一种则是,用第三方框架来实现路由,例如:我们熟知的Flutter框架,包括:fluropage_routeeasy_router等。本文主要介绍系统原生的跳转方法,即“Native Routing”。

按官方文档原话,我们通常会用“屏”来表示应用的不同页面(界面)。比如,某个应用有一“屏”展示商品列表,当用户点击某个商品的图片,会跳到新的一“屏”展示商品的详细信息。在 Android 中,我们可以通过 Intent 来实现不同屏幕之间的跳转;而在 iOS 中,我们可以通过 pushViewController 来实现。

在 Flutter 中,路由同样也是一种机制,用于在应用程序的不同屏幕之间进行导航。

原生路由的工作原理

Flutter 的路由系统是一个基于堆栈的系统,其中每个路由都表示为堆栈上的一个元素。当用户导航到新屏幕时,该屏幕的路由会被推送到堆栈中。当用户返回到前一个屏幕时,当前屏幕的路由会被从堆栈中弹出。

Flutter 提供了一个名为 Navigator 的类来管理路由堆栈。该类提供了许多方法来推入和弹出路由,以及获取当前的路由。

如何使用原生路由

要在 Flutter 中使用原生路由,您需要首先创建一个 Navigator 对象。然后,您可以使用 Navigatorpush() 方法将新的路由推入堆栈。当您想返回到前一个屏幕时,可以使用 Navigatorpop() 方法将当前的路由从堆栈中弹出。

以下是使用原生路由的一个示例:

// 创建一个新的路由
var route = MaterialPageRoute(
  builder: (context) => MyNewScreen(),
);

// 将新的路由推入堆栈
Navigator.push(context, route);

// 返回到前一个屏幕
Navigator.pop(context);

原生路由的优势

使用原生路由的主要优势在于它易于使用和理解。您只需创建一个 Navigator 对象,然后就可以使用 push()pop() 方法来管理路由栈。

原生路由的劣势

使用原生路由的主要劣势在于它不够灵活。例如,您无法使用原生路由来创建嵌套路由或模态路由。

结论

原生路由是 Flutter 提供的内置路由系统,它易于使用和理解。但是,原生路由也不够灵活。如果您需要创建嵌套路由或模态路由,则需要使用第三方框架来实现路由。