Flutter 路由

Flutter onGenerateRoute路由传参配置 flutter配置命名路由传递参数 import 'package:flutter/material.dart'; //import 'package:flutter_demo/provider/provider.dart'; import 'package:flutter_demo/routes/routes.dart'; //import 'package:provider/provider.dart'; void main() { //runApp(ChangeNotifierProvider( 阅读详情

前言:

路由的核心就是一个路由映射表,比如login  映射到 LoginPage,有了这样的映射,就可以根据名字去找寻对应的页面。

在Flutter 中,路由管理主要有两个类 Route 和 Navigator

一 Route

在Flutter 中,一个页面要想被理由统一管理,必须要包装为一个Route,

但是Route 本身是一个抽象类,所以是不能被实例化的

abstract class Route<T>

所以我们一般使用MaterialPageRoute,这个MaterialPageRoute也不是直接继承自Route的,

它是继承链条  PageRoute -> ModalRoute -> TransitionRoute - >OverlayRoute - > Route

对于安卓平台 ,打开一个页面是直接从底部滑动到顶部

对于苹果平台, 打开一个页面会从屏幕右侧滑动到屏幕的左侧

二 Navigator

1 基本使用

管理所有Route 的 widget,通过一个路由栈管理,也就是先进后出的结构。

  _jumpToDetail(BuildContext context) {
    Navigator.of(context).push(MaterialPageRoute(
      builder: (context) {
        return DetailPage();
      },
    ));
  }

上面的方式有缺点 ,假如我们应用中存在多个地方都要访问商品详情页面,这样写的话,代码就会重复太多了。

这种时候就可以使用 

2 命名路由

以上的方式就是一个简单的跳转,但是一般的话 我们会通过在MaterialApp 里面配置route 的方式构建路由映射表

Map<String, WidgetBuilder> this.routes = const <String, WidgetBuilder>{},

这个routes 参数就是一个Map

例如如下的方式

routes: {"/detail": (context) => DetailPage()},

那么调用的时候直接可以push 就行了

_jumpToDetail(BuildContext context) {

Navigator.of(context).pushNamed("/detail");

}

 3 传递参数

使用一个钩子函数实现传递参数 onGenerateRoute ,settings.arguments

这个函数的调用时机:

onGenerateRoute 只有没在routes中注册的路由才会被回调。

所以我们可以在这里做一些操作

 onGenerateRoute: (settings) {
        if (settings.name == "/about") {
          // 这里
          return MaterialPageRoute(
            builder: (context) {
              return AboutPage(message: settings.arguments);
            },
          );
        }
        return null;
      },

为什么采用这种方式,因为在AboutPage 中定义的有参数,那么在routes定义的时候,没有办法传入初始化的参数,所以采用这种方式。

4 举例来说一个项目中的router.dart 文件

import 'package:flutter/material.dart';
import '../pages/tabs/tab.dart';

import '../pages/tabs/home.dart';
import '../pages/tabs/category.dart';
import '../pages/tabs/user.dart';
import '../pages/tabs/cart.dart';
import '../pages/productList.dart';
import '../pages/productSearch.dart';
import '../pages/productDetail.dart';
import '../pages/login.dart';
import '../pages/login/registerFirst.dart';
import '../pages/ensureOrder/ensuerOrder.dart';
import '../pages/address/addressAdd.dart';
import '../pages/address/addressEdit.dart';
import '../pages/address/addressList.dart';
import '../pages/ensureOrder/choosePay.dart';

//配置路由
final routes = {
  '/': (context) => Tabs(),
  '/home': (context) => HomePage(),
  '/category': (context) => CategoryPage(),
  '/user': (context) => UserPage(),
  '/cart': (context) => CartPage(),
  '/productSearch': (context) => ProductSearchPage(),
  '/productDetail': (context) => ProductDetailPage(),
  '/login': (context) => LoginPage(),
  '/ensureOrder': (context) => EnsureOrderpage(),
  '/registerFirst': (context) => RegisterFirstPage(),
  '/addressAdd': (context) => AddressAddPage(),
  '/addressEdit': (context) => AddressEditPage(),
  '/addressList': (context) => AddressListPage(),
  '/choosePay': (context) => ChoosePayPage(),
  '/productList': (context, {arguments}) =>
      ProductListPage(arguments: arguments)
};

//固定写法
var onGenerateRoute = (RouteSettings settings) {
// 统一处理
  final String? name = settings.name;
  final Function pageContentBuilder = routes[name] as Function;
  if (pageContentBuilder != null) {
    if (settings.arguments != null) {
// 有参数的形式
      final Route route = MaterialPageRoute(
          builder: (context) =>
              pageContentBuilder(context, arguments: settings.arguments));
      return route;
    } else {
// 无参数的形式
      final Route route =
          MaterialPageRoute(builder: (context) => pageContentBuilder(context));
      return route;
    }
  }
};

在main中直接使用即可:

initialRoute: "/",

onGenerateRoute: onGenerateRoute,

5 onUnknownRoute

这个方法如名字一样 ,跳转的路由未找到就会走这个方法

onUnknownRoute: (settings) {
        return MaterialPageRoute(
          builder: (context) {
            return UnkonwnPage();
          },
        );
      },

Flutter路由管理 阅读详情

相关推荐

【Flutter】Flutter 如何获取当前路由

本文介绍了如何在 Flutter 中获取当前路由,我们介绍了两种方法,一种是使用 NavigatorState 类,另一种是使用 ModalRoute 类。我们还提供了一些代码示例来帮助你理解如何在实际的应用中获取和使用当前路由。

Code Metaverse 3581

Flutter onGenerateRoute路由的用法

上官方代码看的更清楚 // Copyright 2020, the Flutter project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. /// Shows how to handle arbi

Leove的专栏 3888

基于YOLO+DeepSeek的农作物病虫害检测系统

本系统是一个基于YOLO+DeepSeek的农作物病虫害检测系统。 可使用YOLOV1-YOLOV12的任意模型进行目标检测。可以实现检测图片、批量检测图片、视频检测、摄像头检测四种方式。

qq_51977316的博客 1809

Flutter路由总结2

命名路由(基于onGenerateRoute) 以下介绍如何通过MaterialApp组件的onGenerateRoute属性来管理路由。 1. 从下面代码可以看到,我们不对MaterialApp组件的routes属性进行赋值,而是赋予了其onGenerateRoute属性一个回调函数onGenerateRoute。当查找路由的时候,发现routes属性为null,即会触发onGenerateRo...

isAlberYu的博客 839

将ue4程序嵌入qt界面显示

需求:将ue4程序嵌入qt界面显示 思路:通过使用 windowsAPI 对ue4窗口进行设置跟随qt界面以及活动窗口时的位置层序设置

weixin_44342705的博客 5844

AMEsim柱塞泵的建模学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要对柱塞泵进行仿真?二、Amesim中柱塞泵的模型1.amesim中自己的定排量五柱塞的斜盘柱塞泵2.压力、流量仿真总结 前言 最近在学习Amesim进行柱塞泵的仿真学习,顺便在这里记录我的学习过程,这是我的初衷 提示:以下是本篇文章正文内容,下面案例可供参考 一、为什么要对柱塞泵进行仿真? 柱塞泵是功能和动力学比较复杂的流体机械。而在实际实验中,往往没有条件或者需要对柱塞泵做一些优化,所以需要我们利用仿真...

innocent_cft的博客 8179

一周掌握Flutter开发--4、导航与路由

基础跳转:使用和。命名路由:使用routes和集中管理路由。路由传参和返回结果:通过arguments和await实现。推荐工具go_router支持深度链接和嵌套路由,适合复杂应用。掌握这些导航与路由的核心功能后,你可以轻松管理 Flutter 应用的页面跳转和路由逻辑。结束语Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。

江上清风山间明月的博客 1461

给MATLAB安装runtime插件

输入你刚刚下载压缩包的位置(小白提示:在 此电脑 中找到压缩包位置,右键属性复制位置)(!设置好以后然后填写下面输出exe文件的信息,包括文件的名字、作者、Email、公司、概述、描述,下面还可以选择额外的安装选项,exe文件运行需要的其他文件(图像、子程序等)、提供给用户的文件(readme.txt等)(很多方法是官网下载,但在官网下载还是会版本不对应,所以直接在你所用的MATLAB里搜索安装链接最靠谱)(!5.可以打包程序了(你发送文件的人电脑里没有MATLAB也可以查看运行你的程序了)

Pei_hua100的专栏 1万+

flutter路由配置

4、 通过命名路由配置带参数pushNamed。3、通过命名路由配置pushNamed。1、push不带参数。

datalover的专栏 519

AWR射频仿真基本操作(一)

这里只讲述一个基本的操作: 软件是AWR 14版本

钢丝 2万+

使用自制的NTC测量模块测试Plecs的热仿真效果

可以测试:您完全可以用这个模型来测试热仿真。NTC 模型是连接电气域和热域的关键桥梁。实现闭环:通过这种方式,您创建了一个高度真实的正反馈闭环系统:负载增加 -> 损耗增加 -> 温度升高 -> NTC 阻值变化 -> 控制电路可能因此调整(如降低频率或电流)-> 损耗变化 -> 温度变化。应用场景:这对于设计过温保护 (OTP) 电路风扇控制系统以及分析热失控条件非常有用。单位:确保热域中使用的单位( Kelvin 或 Celsius )与您的 C-Script 模型输入期望的单位一致。

311

Flutter—路由

路由(Route)在移动开发中通常指页面(Page),这跟 Web 开发中单页应用的 Route 概念意义是相同的,Route 在 Android中 通常指一个 Activity,在 iOS 中指一个 ViewController。所谓路由管理,就是管理页面之间如何跳转,通常也可被称为导航管理。Flutter 中的路由管理和原生开发类似,无论是 Android 还是 iOS,导航管理都会维护一个路由栈,路由入栈(push)操作对应打开一个新页面,路由出栈(pop)操作对应页面关闭操作,而路由管理主要是指如何

大模型训练 2656

22、嵌入式软件随机延迟生成与加密算法防护技术

本文探讨了嵌入式软件中的随机延迟生成方法与块密码软件实现的高阶掩码及洗牌技术。重点介绍了浮动均值延迟生成方法,其在8位AVR平台上的实现效率为Θ(1),显著提升了抗相关功率分析(CPA)攻击的能力,相比传统方法更安全且轻量。同时,分析了高阶掩码与洗牌技术结合的方案,通过理论建模量化其对高级差分功率分析(DPA)攻击的抵抗能力,并以AES为例展示了该方案的应用流程。最后对比了不同防护技术在安全性与开销之间的权衡,为实际应用中选择合适的安全策略提供了依据。未来可进一步优化实现效率并融合多种防护手段以应对复杂安全

fern8的博客 86

【Flutter】路由详解

介绍了Flutter中路由的使用。

一以贯之的努力 不得懈怠的人生 2059

Open3D (C++) 计算点云坐标最值及其索引

使用C++版本的Open3D计算点云最值点及其对应的下标索引

点云侠的博客 728

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Flutter【路由】

文章目录基本路由传参命名路由传参路由单独模块化 在Flutter中通过Navigator组件管理路由导航。 并提供了管理堆栈的方法。如:Navigator.push和Navigator.pop 基本路由 RaisedButton( child: Text("跳转到搜索页面"), onPressed: (){ Naviga...

越思考越清晰 1268

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Flutter系列-flutter路由管理

Flutter路由管理初识路由概念一.路由管理1.1.Route1.2.MaterialPageRoute1.3.Navigator1.4.路由传值1.5 命名路由1.6.命名路由参数传递1.7.适配二、路由钩子三、onUnknownRoute四、结尾 初识路由概念 路由的概念由来已久,包括网络路由、后端路由,到现在广为流行的前端路由。无论路由的概念如何应用,它的核心是一个路由映射表。比如:名字 detail 映射到 DetailPage 页面等。有了这个映射表之后,我们就可以方便的根据名字来完成路由的转发

路漫漫其修远兮,吾将上下而求索 7003

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Flutter路由

Flutter路由路由基本路由的使用命名路由命名路由传值返回上一页面路由替换返回根路由 路由 在flutter中,路由就是页面之间的跳转。在 Flutter 中通过 Navigator 组件管理路由导航。并提供了管理堆栈的方法。如:Navigator.push 和 Navigator.pop Flutter 中给我们提供了两种配置路由跳转的方式: 基本路由 命名路由 基本路由的使用 主要方法 Navigator.of(context).push( MaterialPageRoute( builder:

m0_46527751的博客 1503

【Flutter——路由导航】

Flutter路由导航

muzillll的博客 3000

Flutter 命名路由、路由组、路由替换、路由销毁

一、路由表 和 命名路由 1、路由表 2、onGenerateRoute 路由拦截 3、命名路由导航 Navigator.of(context).pushName 4、效果: 二、路由替换 Navigator.of(context).pushReplacementNamed 三、根路由 pushNamedAndRemoveUntil 四、完整代码: 1、命名路由和路由组 2、路由替换和路由销毁 一、路由表 和 命名路由 之前写了一篇文章介绍了路由导航及路由传参,文章.

大灰狼的小绵羊哥哥的博客 2023

Flutter中的路由

1.概述 Flutter支持所有的路由场景,包括push页面、pop页面,以及页面间的参数传递等。flutter里面的路由可以分为如下两种。 静态路由:直接注册,不能传递参数。 动态路由:要自己构造实例,可以传递参数。 静态路由 动态路由 ...

wangzunkuan的博客 2270

flutter中的路由表和路由管理

查看更多flutter资料 MaterialPageRoute MaterialPageRoute继承自PageRoute类,PageRoute类是一个抽象类,表示占有整个屏幕空间的一个模态路由页面,它还定义了路由构建及切换时过渡动画的相关接口及属性。MaterialPageRoute是Material组件库的一个Widget,它可以针对不同平台,实现与平台页面切换动画风格一致的路由切换动画...

Seanyxie Blog 3018

Flutter:路由

Flutter 中的路由通俗的讲就是。在 Flutter 中通过 Navigator 组件管理路由导航。并提供了管理堆栈的方法。和。

weixin_46136019的博客 1568

Flutter入门进阶之旅(十三)Flutter 路由

距离上一篇专栏已经过去好长时间了,小伙伴们都等急了吧,刚刚过了个年,笔者刚刚从吃喝睡的状态复苏回来,开始马不停蹄的进入到工作状态,题外话说的有点多,接下来我们开始进入我们本篇博文的主题Fluttter 路由。 在本篇博文更新之前就有好多读者给我留言说专栏里讲到的东西都只能在一个页面上操作,涉及到多页面的时候不知道该怎么跳页或者不知道怎么给下一个页传值,那这期分享确实来的有点晚,通过本次的分享,读...

谢栋的专栏 2582

Flutter之路由配置

跳转与返回 Navigator.push 方法是向路由堆中添加一个新的路由 MaterialPageRoute的build方法返回一个新的组件并跳转 Navigator.push(context, MaterialPageRoute( builder: (context) => Show() )); Navigator.pop 方法是从路由堆里面拿出最前面的路由 Navigator.pop(context); 路由使用context参数传入 Navigator.of(co

moozixiao的博客 1538
上一篇: Flutter 事件监听以及EventBus
下一篇: Flutter Animation 动画
Leonardo_Fibonacci
博客等级 码龄10年 110粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值