flutter getx nested navigation 嵌套路由

这篇具有很好参考价值的文章主要介绍了flutter getx nested navigation 嵌套路由。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flutter getx nested navigation 嵌套路由

flutter getx nested navigation 嵌套路由

视频

https://youtu.be/SXER4JVBFps

前言

嵌套路由可以用在如购物确认向导界面切换。

使用 getx 实现嵌套路由,需要如下步骤:

  • 通过 Navigator 组件的 key 属性
  • 用 Get.nestedKey(1) 进行标记
  • onGenerateRoute 决定去哪个视图界面
  • initialRoute 初始路由
  • 通过 Get.toNamed 的 id 属性执行嵌套路由
flutter getx nested navigation 嵌套路由

步骤

第一步:准备工作

请用猫哥的 getx 插件初始环境

https://marketplace.visualstudio.com/items?itemName=ducafecat.getx-template

准备好 main、step1、step2、step3 4个界面

flutter getx nested navigation 嵌套路由

第二步:创建 Navigator 组件

lib/pages/main/view.dart

          child: Navigator(
            key: Get.nestedKey(1),
            initialRoute: '/step1',
            onGenerateRoute: controller.onGenerateRoute,
          ),

通过 Get.nestedKey(1) 指定需要嵌套路由的位置标记。

initialRoute 初始路由

onGenerateRoute 解析路由请求

第三步:onGenerateRoute 解析路由

lib/pages/main/controller.dart

  Route? onGenerateRoute(RouteSettings settings) {
    if (settings.name == '/step1') {
      return GetPageRoute(
        settings: settings,
        page: () => const Step1Page(),
        transition: Transition.topLevel,
      );
    } else if (settings.name == '/step2') {
      return GetPageRoute(
        settings: settings,
        page: () => const Step2Page(),
        transition: Transition.rightToLeftWithFade,
      );
    } else if (settings.name == '/step3') {
      return GetPageRoute(
        settings: settings,
        page: () => const Step3Page(),
        transition: Transition.fadeIn,
      );
    }

    return null;
  }

通过 onGenerateRoute 决定去哪个视图界面。

注意返回值是 Route 类型。

第三步:Get.toName 界面切换

        Get.toNamed(
          RouteNames.step2,
          id: 1,
        );

通过 toName 方法的 id 属性决定去哪个嵌套导航位置。

第四步:导航栏

再加导航按钮栏来进行操作测试。

lib/pages/main/view.dart

        Container(
          height: 100,
          color: Colors.yellow,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              ElevatedButton(
                onPressed: () {
                  Get.toNamed(
                    RouteNames.step1,
                    id: 1,
                  );
                },
                child: const Text('step1 page'),
              ),
              ElevatedButton(
                onPressed: () {
                  Get.toNamed(
                    RouteNames.step2,
                    id: 1,
                  );
                },
                child: const Text('step2 page'),
              ),
              ElevatedButton(
                onPressed: () {
                  Get.toNamed(
                    RouteNames.step3,
                    id: 1,
                  );
                },
                child: const Text('step3 page'),
              ),
            ],
          ),
        ),

代码

https://github.com/ducafecat/flutter_develop_tips/tree/main/flutter_application_nested_navigation

小结

在嵌套Navigator中使用不同的路由表来管理页面导航,除了用在我刚才说的购物消费向导外,还能用在有些管理后台,比如一侧菜单固定,只刷新内容区域。

感谢阅读本文

如果我有什么错?请在评论中让我知道。我很乐意改进。


© 猫哥 ducafecat.com

end

本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-500087.html

到了这里,关于flutter getx nested navigation 嵌套路由的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flutter GetX的使用

    比较强大的状态管理框架 引入库: 实现一个计数器功能 代码如下: 1.状态管理 Get 有两种不同的状态管理器:简单状态管理器(我们称之为 GetBuilder)和反应式状态管理器(GetX/Obx) 使用 Get 进行响应式编程与使用 setState 一样简单。 要使其可观察,您只需在其末尾添加“.

    2024年02月05日
    浏览(43)
  • Flutter GetX使用详解

    GetX是一款功能强大且轻量级的Flutter状态管理和路由管理库。它提供了一种简单而强大的方式来构建Flutter应用程序,无需大量的模板代码。GetX不仅提供了状态管理和路由管理,还包括其他实用工具,如国际化和依赖注入。 在本文中,我们将深入探讨GetX的核心功能,并通过实

    2024年02月08日
    浏览(39)
  • flutter getx 简单使用教程

    所以Flutter使用GetX真的很不错 为什么说什么GetX好用呢? 1、依赖注入 GetX是通过依赖注入的方式,存储相应的XxxGetxController;已经脱离了InheritedWidget那一套玩法,自己手动去管理这些实例,使用场景被大大拓展 2、跨页面交互 这绝对是GetX的一个优点!对于复杂的生产环境,跨

    2024年02月08日
    浏览(56)
  • Flutter GetX 之 国际化

    今天给大家介绍一下 GetX 的国际化功能,在日常开发过程中,我们经常会使用到国际化功能,需要们的应用支持 国际化,例如我们需要支持 简体、繁体、英文等等。 上几篇文章介绍了GetX的 路由管理 和 状态管理,看到大家的点赞和收藏,还是很开心的,说明这两篇文章给大

    2024年01月19日
    浏览(62)
  • Flutter 状态管理之GetX库

      Flutter使用的是声明式UI,是通过状态去更新UI组件的,因此我们首先就要学习状态的使用。同样为了简化原本的状态使用,我们会使用Getx库。   之前说要写Flutter,一拖就是一年多,有些不好意思。现在都24年了,终于等到你,下面还是按照我们最属于的思路来吧。 首

    2024年01月23日
    浏览(45)
  • 对Flutter GetX的一些理解

    1.内部实现了 路由管理 ,相比目前主流的fluro框架更轻量,并且路由跳转无需上下文对象,支持自定义路由中间件和动态路由传参等功能。 2.提供两种简单灵活的实现状态管理的方式。 3.它内部实现了依赖注入,可以快速的获取到某个状态管理器( GetxController )。 4.在实际开发

    2023年04月08日
    浏览(33)
  • Flutter GetX 实现 ChatGPT 简单聊天界面

    Flutter 是一款跨平台的移动应用开发框架,而 GetX 是 Flutter 中一种简单易用的状态管理和路由管理工具。本篇我们将使用 Flutter 和 GetX 实现一个简单的聊天界面,以与 ChatGPT 进行交互。 我们需要在 Flutter 项目中引入 GetX 库。在 pubspec.yaml 文件中添加以下依赖: 在 main 函数中添

    2023年04月17日
    浏览(86)
  • Flutter 全能型选手GetX —— 状态管理

    使用篇 简介 依赖管理 路由管理 状态管理 主题配置 多语言配置 离线缓存 网络请求 原理篇 Flutter 从源码看Getx的依赖原理 Obx:响应式状态管理,当数据源变化时,将自动执行刷新组件的方法 GetX:响应式状态管理,当数据源变化时,将自动执行刷新组件的方法 GetBuilder:简单

    2024年02月02日
    浏览(48)
  • elasticesearch nested多条件多嵌套查询

    索引映射结构 \\\"properties\\\": {                 \\\"attrs\\\": {                     \\\"type\\\": \\\"nested\\\",                     \\\"properties\\\": {                         \\\"attrId\\\": {                             \\\"type\\\": \\\"long\\\"                         },                         \\\"attrName\\\": {  

    2024年02月03日
    浏览(48)
  • Flutter GetX页面跳转动画与属性

    Flutter GetX页面跳转动画解释: fade: 页面渐变动画,新页面会从透明度为 0 的状态渐变到完全显示。 fadeIn: 渐入动画,新页面会从透明度为 0 的状态渐变到完全显示。 rightToLeft: 从右向左滑动动画,新页面从屏幕右侧滑入显示。 leftToRight: 从左向右滑动动画,新页面从屏幕左侧

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包