Flutter 基础路由管理、Fluro库的使用和二次封装

本文介绍了Flutter中的路由管理,包括MaterialApp内置的路由管理和Fluro库的使用。详细讲解了如何进行页面跳转、传值、反向传值,并展示了如何对Fluro进行二次封装,以实现更灵活、低耦合的路由管理。
摘要由CSDN通过智能技术生成

在原生开发中,安卓和IOS自有控制页面(Activity、ViewControl)跳转的功能,在flutter中,路由管理变得更加统一灵活高效。

路由管理需求

在Flutter中,万物皆组件,页面也是组件,路由则是组件之间的跳转、传值,常见的需求有下面四种:

  1. 跳转下一页
  2. 返回上一页
  3. 正向传值
  4. 反向传值

我们主要研究这四种操作的方式,在每个项目中都必备的需求。

MaterialApp 内置的路由管理

在 MaterialApp 中内置的路由管理,有两种操作方式:

  1. 未声明路由,使用实例化组件直接跳转
  2. 声明路由,使用路由的名称进行跳转

两种方式各有优劣,项目中酌情选择,第一种方式更灵活,简单除暴,但无法统一管理,比较松散,第二种可以统一管理,使用路由name进行对应操作,但是传值、取值可能较麻烦。

前面说了,flutter中的页面也是组件,所以我们首先用Scaffold脚手架创建两个独立的页面: HomePageNextPage。用这两个页面来实现后续的所有需求:

不声明路由

1. 跳转下一页

无需声明组件,直接使用api跳转到回调中的组件页面:

// HomePage 页面
class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Home Page"),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () {
            Navigator.push(context, MaterialPageRoute(builder: (ctx) => NextPage()));
          },
          child: Text("跳转到第二页"),
        ),
      ),
    );
  }
}

// NextPage 页面
class NextPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Next Page"),
      ),
      body: Container(
        child: Text("Next Page"),
      ),
    );
  }
}

在这里插入图片描述

直接使用api,就可以进行快速的页面跳转,其中关键跳转代码

...
Navigator.push
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值