首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter开发-路由

Flutter的路由有两种方式 基本路由 命名路由 基本路由就相当于Android和iOS原生的页面跳转方式。 命名路由就相当于VUE的Router插件一样,这种方式耦合性更低,功能更强大。...context) { return HomePage(); })); 关闭页面 Navigator.pop(context); 除了页面关闭用这个方法,窗口的关闭也是用这个方法,因为Flutter的...: '带参数跳转') ## 命名路由 路由定义与初始化 路由定义 import 'package:flutter/material.dart'; import 'package:qggj_android...,因为Flutter的Dialog的实现方式就是基于路由的。...该回调需要返回一个Future对象,如果返回的Future最终值为false时,则当前路由不出栈(不会返回);最终值为true时,当前路由出栈退出。我们需要提供这个回调来决定是否退出。

80120

Flutter 入门指北之路由

上一节撸了个界面,虽然比较简单,但是把前面讲的知识串联了下,但是界面之间的跳转一直没说,这节就讲下 Flutter 中的「路由」来管理界面。...Navigator Flutter 通过 Navigator 来进行页面之间的跳转,分为 push 系列和 pop 系列操作,带 push 方法为入栈操作,带 pop 方法为出栈操作。...Navigator 的 push 方法分两类,一类是带 Name 的,需要在 MaterialApp 下将 routers 属性进行注册,否则将会找不到该路由,还有一个是不带 Name 的,可以通过 Router...,只要保证 BPage 跳转 CPage 的方式不变,点击 CPage 的返回按钮,又回到 APage 了,所以...堆栈的变化图如下 ?...Future get popped => _popCompleter.future; 官方的注释非常明白的指出,会在 Future 中携带 pop 传递的参数,那么我们对 APage跳转 BPage

81820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter | 路由管理

    继承自 PageRoute 类,PageRoute 是一个抽象类,表示整个屏幕空间的一个模态路由页面,其中定义了路由构建及切换时过度动画的相关接口和属性;如果想自定义路由切换动画,可自己继承 PageRoute...push(route); } 将给定的路由入栈(打开页面),返回 future 对象,用于接收该路由出栈是返回的数据。 关闭一个页面 Navigator.of(context)!...."打开提示页面",效果如下所示 image.png 打印的结果 I/flutter (23778): 路由返回值 我是返回值 需要注意的是 ​ 1,参数是通过构造方法传入的 ​ 2,如果点击左上角,...带参数的命名路由传递 "new_page": (context) => NewRoute(), }, 在路由表里面注册 @override Widget build(BuildContext...} ); } ); ---- 参考资料: Flutter官网 Flutter 实战

    96650

    Flutter 小技巧之优化你使用的 BuildContext

    Flutter 里的 BuildContext 相信大家都不会陌生,虽然它叫 Context,但是它实际是 Element 的抽象对象,而在 Flutter 里,它主要来自于 ComponentElement...如下代码所示,在这个例子里: 我们添加了一个列表,使用 builder 构建 Item 每个列表都有一个点击事件 点击列表时我们模拟网络请求,假设网络也不是很好,所以延迟个 5 秒 之后我们滑动列表让点击的...那如果假设需要在开发时展示点击数据上报的结果,也就是 Item 被释放了还需要弹出,这时候需要如何处理?...对于这部分内容感兴趣的,可以看 Flutter 小技巧之 MediaQuery 和 build 优化你不知道的秘密 和 全面理解State与Provider 。...,虽然当前页面并没有完全展示,但是也会导致你的控件不断重新计算从而出现卡顿。

    1.3K00

    【Flutter】Flutter 拍照示例 ( 浮动按钮及点击事件 | 底部显示按钮组件 | 手势检测器组件 | 拍照并获取当前拍摄照片 | 从相册中选择图片 )

    : 浮动按钮点击事件就是 FloatingActionButton 组件的 onPressed 属性值 , 设置一个 VoidCallback?...类型的值 , FloatingActionButton( // 浮动按钮点击事件 onPressed: () { } ) VoidCallback 就是参数和返回值都是空的函数 ; onPressed..., BuildContext context 是上下文对象 , WidgetBuilder builder 是显示的底部布局组件 ; Future<T?...://dart.cn/ Dart 开发者官网 : https://api.dart.dev/ Flutter 中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club...: GitHub 地址 : https://github.com/han1202012/flutter_photo ( 随博客进度一直更新 , 有可能没有本博客的源码 ) 博客源码快照 : https

    1.6K30

    Flutter快速开发——列表分页加载封装

    实现功能 封装后的列表分页加载实现功能主要如下: • 列表数据显示 • 下拉刷新 • 上拉加载 • 自动判断是否还有更多数据 • 自动处理分页逻辑 • 列表 item 点击事件封装 使用到的第三方库 •...,不会过多介绍 GetX,关于 GetX 更多使用及介绍可参考以下文章: • Flutter之GetX集成及使用详解 • Flutter 通过源码一步一步剖析 Getx 依赖管理的实现 • Flutter...Future?...关于 json 数据解析可参考前面写的 : Flutter应用框架搭建(三)Json数据解析[9] 数据加载完成后,判断数据是否为空,不为空则将数据添加到 data 集合中,并且分页的页数加 1。...,参数也基本上是前面两者的结合,buildRefreshWidget 的 builder 传入的是 buildListView 。

    6.4K31

    干货 | 携程酒店Flutter性能优化实践

    二、FPS&TTI提升性能优化 2.1 常用性能指标和卡顿定义 对于客户端应用来说,流畅度是影响用户使用体验的关键因素。流畅度低主要有:低FPS、高TTI、卡顿。...这些现象出现时,页面会出现不连续的动画,页面刷新会短暂停顿,打开新页面速度较慢,新页面出现白屏或者较长时间的加载动画,用户做点击滑动等交互时页面不响应。...TTI的定义是从页面加载开始到页面处于完全可交互状态 (Time To Interactive),完全可交互状态指的是页面有内容呈现并且用户可以进行操作。...d) 减少耗时计算,放到Isolate Flutter应用中的Dart代码执行在UI Runner中,而Dart是单线程的,我们平时使用的异步任务Future都是在这个单线程的Event Queue之中...从结果看,减少了3次卡顿和1次轻微卡顿,流畅帧占比超过90%。

    2K10

    Flutter 刷新页面:通过下拉刷新提升用户体验

    它需要一个 child 的挂件,这个挂件通常是可滚动的挂件,和一个 onRefresh 回调函数来定义当用户触发刷新后发生什么事情。...构建用于下拉刷新的小部件 为了实现下拉刷新,我们从可滚动挂件开始,比如 ListView 或者 ScrollView,这些将会是 RefreshIndicator 挂件的 child 内容。...RefreshIndicator 挂件应该覆盖在需要刷新的可滚动的内容上。还有很重要的一点需要注意,RefreshIndicator 只在垂直可滚动的 child 上才可工作,。...这个设计可保证整个列表都符合 pull-to-refresh 的动作。...在复杂的 Flutter 应用程序中拉动刷新 在更复杂的 Flutter 应用程序中,下拉刷新可能和多个状态层和数据源有交互。在这种场景中,实现一个能够处理复杂性的有强大状态管理的解决方案至关重要。

    33610

    Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh

    Flutter 库:强大的下拉刷新上拉加载框架——EasyRefresh 一、概述 1、简介 EasyRefresh 是一个用于 Flutter 应用程序的简单易用的下拉刷新和上拉加载框架。...它支持几乎所有的 Flutter 可滚动小部件。它的功能与Android 的 SmartRefreshLayout 非常相似,并吸收了许多第三方库的优点。...EasyRefresh 集成了各种样式的页眉和页脚,但没有任何限制,您可以轻松自定义它们。利用Flutter强大的动画功能,即使只是一个简单的控件也可以实现复杂的效果。...EasyRefresh的目标是为Flutter创建一个功能强大、稳定和成熟的下拉刷新框架。...await Future.delayed(Duration(seconds: 2)); }, child: ListView.builder( itemCount

    14700

    ​Flutter中异常处理

    Flutter 异常 Flutter 异常指的是,Flutter 程序中 Dart 代码运行时意外发生的错误事件。我们可以通过与 Java 类似的 try-catch 机制来捕获它。...Flutter 为这两种异常提供了不同的捕获方式,接下来我们就一起看看吧。 App 异常的捕获方式 App 异常,就是应用代码的异常,通常由未处理应用层其他模块所抛出的异常引起。...Flutter 框架异常捕获 Flutter 框架为我们在很多关键的方法进行了异常捕获。...ErrorWidget.builder来自定义错误界面 ErrorWidget.builder = (FlutterErrorDetails flutterErrorDetails) { return...点击异常按钮,观察控制台输出 ? 同样的我们自定义了错误界面,当界面构建发生错误时就会显示我们自定义的错误界面 ?

    2.7K10

    【Flutter 实战】文件系统目录

    不同的平台对应的文件系统是不同的,比如文件路径,因此 Flutter 中获取文件路径需要原生支持,原生端通过 MethodChannel 传递文件路径到 Flutter,如果没有特殊的需求,推荐大家使用...getExternalCacheDirectories 存储特定于应用程序的外部缓存数据的目录的路径。这些路径通常位于外部存储(如单独的分区或SD卡)上。电话可能具有多个可用的存储目录。...getExternalStorageDirectories 可以存储应用程序特定数据的目录的路径。这些路径通常位于外部存储(如单独的分区或SD卡)上。...: future, builder: _buildDirectory), ], ); } Widget _buildItem1(String title, Futurefuture, builder: _buildDirectories), ], ); } @override Widget build(BuildContext

    3K10
    领券