【Flutter】Flutter学习-GetX 导航操作

news/2024/6/17 22:49:08 标签: flutter, 学习, ios

1.跳转

在原生中咱们一般运用的是push进行跳转的,这儿是没有界说途径直接经过上下文进行跳转

Navigator.of(context).push(MaterialPageRoute(
    builder: (BuildContext context) => DiscoverChildPage(
          title: widget.title,
        )));

咱们运用Get.to进行跳转

 Get.to( DiscoverChildPage(
          title: widget.title,
        )),

当咱们界说途径则直接经过Get.toNamed

Get.toNamed("/discover/child");

或许咱们之前界说的AppRoutes并运用GetX 界说了路由则直接

Get.toNamed(AppRoutes.discoverDetail);

2. 回来

在原生中咱们一般运用的是pop进行回来的

Navigator.pop(context)

运用Getx的话

Get.back()

3. 铲除

咱们有些时分会用到一些铲除的作用,比方说咱们初次注册的时分,流程完成后就应该铲除该页面

铲除上一个页面

class ChartChildPage extends StatelessWidget {
  const ChartChildPage({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('子页面'),),
      body: IconButton(
        icon:const Icon(Icons.close),
        onPressed: ()=> Get.offNamed(AppRoutes.network)
      ),
    );
  }
}

或许直接经过页面

Get.off(const ChatListPage())

铲除所有途径

onPressed: ()=> Get.offAll(const ScaffoldPage())

也可经过途径

onPressed: ()=> Get.offAllNamed(AppRoutes.network)

Get.offAll这儿会铲除之前的途径并回来咱们括号中的页面并进行初始化,而Get.off则仅仅相当于回来咱们想要的页面,其中的页面便是相当于咱们想要的途径,这样咱们就能够回来指定页面了,比方可返还当前页面的上上个页面

4. 传值

在页面之间传值与回来值的接收都是开发中必要的功用,比较属性传值,经过Getx传值更加便利。

传值
咱们在页面跳转的的时分增加

Future<T?>? toNamed<T>(
  String page, {
  dynamic arguments,
  int? id,
  bool preventDuplicates = true,
  Map<String, String>? parameters,
})

咱们一般界说的是arguments,由于是dynamic因此能够动态的界说类型

Get.toNamed(AppRoutes.webview,arguments: '我是一个标题');

而parameters则一般是一个 Map<String, String>类型

Get.toNamed(AppRoutes.loadImage,arguments: items[index],parameters: {'title':'跳转网页','desc': "跳转网页",},

取值
这儿咱们arguments传的是什么便是取的是什么

String? title = Get.arguments['title'];

获取parameters

final parameters = Get.parameters;
String? title1 = parameters['title'];

5. 回来值

一般咱们能够在Get.back增加result

void back<T>({
  T? result,
  bool closeOverlays = false,
  bool canPop = true,
  int? id,
})

这儿咱们result为咱们回传的参赛,closeOverlays则是否封闭当前的弹出框

Get.back(result: {'result':'success'});

承受

var data = await Get.to(const ChartChildPage());
print(data);

打印结果

flutter: {result: success}

6. 拼接参数

咱们有的时分会途径拼接或许运用url拼接参数

static void goWeb(String url, String title) {
  Get.toNamed(
      "/web?url=${Uri.encodeComponent(url)}&title=${Uri.encodeComponent(title)}");
}

这样咱们经过参数传递进入web页

XRouter.goWeb(url, title);

在WebViewPage获取

String? url = Get.parameters['url'];
String? title = Get.parameters['title'];

7.小结

能够发现经过Getx进行页面的跳转以及回来,或许指定相应页面回来都是比较便利的,同时传参也是多种形式,回来的时分也能够携带参数以及状况从而处理咱们页面,刷新状况等。


http://www.niftyadmin.cn/n/5394477.html

相关文章

【软件测试】--功能测试2--常用设计测试用例方法

一、解决穷举场景 重点&#xff1a;使用等价类划分法 1.1 等价类划分法 重点&#xff1a;有效等价和单个无效等价各取1个即可。 步骤&#xff1a;1、明确需求2、确定有效和无效等价3、根据有效和无效造数据编写用例 1.2 案例&#xff08;qq合法验证&#xff09; 需求&#xff…

Leetcoder Day23| 回溯part03:组合+分割

语言&#xff1a;Java/Go 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的所有不同组合 &#xff0c;并以列表形式返回。你可以按任意顺序返回这些组合。 candidates 中的同一个…

关于跨链桥的访谈链接合集

想了解跨链桥&#xff0c;知名人士的访谈也很重要&#xff0c;下面是相关知名人士的访谈合计 1&#xff1a;Andre Cronje 专访Andre Cronje&#xff1a;99% 的项目都是垃圾&#xff0c;但是还有 1% 的真正价值存在 https://www.panewslab.com/zh/articledetails/g52p2lpbudmm.…

nginx设置缓存时间

一、设置缓存时间 当网页数据返回给客户端后&#xff0c;可针对静态网页设置缓存时间&#xff0c;在配置文件内的http段内server段添加location&#xff0c;更改字段expires 1d来实现&#xff1a;避免重复请求&#xff0c;加快访问速度 第一步&#xff1a;修改主配置文件 #修…

【51单片机】红外遥控红外遥控电机调速(江科大)

1.红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 2.硬件电路 红外发送部分 IN高电平时&#xff0c;LED不亮&#xff0c;IN低电平时&…

一文读懂 Python 值传递和引用传递

文章目录 版本前言形参和实参值传递和引用传递Python 变量存储值语义和引用语义值语义引用语义 探讨 Python 值传递和引用传递不可变&#xff08;immutable&#xff09;类型可变&#xff08;mutable&#xff09;类型案例一案例二 拓展&#xff1a;不可变类型真的不可变&#xf…

支持国密ssl的curl编译和测试验证(上)

目录 1. 编译铜锁ssl库2. 编译nghttp2库3. 编译curl4. 验证4.1 查看版本信息4.2 验证国密ssl握手功能4.3 验证http2协议功能 以下以ubuntu 22.04环境为例进行编译 本次编译采用铜锁sslnghttp2curl&#xff0c;使得编译出来的curl可以支持国密ssl&#xff0c;并且可以支持http2…

计算机操作系统(慕课版)第一章学习笔记

第一章学习笔记 1.1 操作系统的概念 操作系统是配置在计算机硬件上的第一层软件&#xff0c;是对硬件系统的首次扩充&#xff0c;其主要作用是管理硬件设备&#xff0c;提高他们的利用率和系统吞吐量&#xff0c;并为用户和应用程序提供一个简单的接口&#xff0c;以便用户和应…