当前位置: 首页 > news >正文

第一百三十六回 WillPopScope组件

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了下拉刷新组件相关的内容,本章回中将介绍 WillPopScope组件.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在本章回中介绍的WillPopScope组件是一种事件拦截类组件,它没有具体的物理形态,也就是说我们在页面中看不到它。该组件主要用来拦截返回按钮发出的事件。本章回中将详细介绍它的使用方法。

使用方法

和其它组件一样,WillPopScope组件提供了相关的属性来控制自己,下面是该组件的属性:

  • onWillPop属性:该属性是方法类型,点击返回按钮时回调此方法;
  • child属性:用来存放其它组件,它会拦截该属性所指页面中的返回按钮事件;

该组件只有这两个属性,不过它们都是必选属性。我们重点介绍一下第一个属性,该属性对应的方法会返回一个bool值,返回true表示拦截返回按钮发出的事件,此时不会返回上一级页面。反之表示不拦截返回按钮发出的事件,可以正常返回上一级页面。我们可以依据业务的需求来决定是否拦截返回按钮发出的事件。接下来我们将通过具体的代码来演示该组件的使用方法。

示例代码

  Future<bool> _backIconOnPress() async {///两次点击间隔小于3s时才退出当前页面:return true;if(_lastPressedTime == null|| DateTime.now().difference(_lastPressedTime!) > const Duration(seconds: 3)) {_lastPressedTime = DateTime.now();debugPrint('false');return Future.value(false);}else {debugPrint('true');return Future.value(true);}}Widget build(BuildContext context) {return WillPopScope(onWillPop: _backIconOnPress,child: Scaffold(appBar: AppBar(title: const Text('Example of WillPopScope Widget'),backgroundColor: Colors.purpleAccent,),body: const Center(child: Text('连续两次点击小于3s时才能退出页面'),),),);}

在上面的示例代码中,WillPopScope组件封装了Scaffold组件,因此它会拦截Scaffold页面中返回按钮发出的事件。

我们把该组件onWillPop属性对应的方法封装为独立的方法,这个从代码中也可以看到,该方法中的业务逻辑是:连续两次点击返回按钮小于3s时才能退出页面。这个逻辑参考了wendu共享的《Flutter实战》,大家可以依据自己的业务逻辑来拦截页面中返回按钮发出的事件。

我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

看官们,与"WillPopScope组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关文章:

第一百三十六回 WillPopScope组件

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了下拉刷新组件相关的内容&#xff0c;本章回中将介绍 WillPopScope组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在本章回中介绍的WillPopScope组件是一种事件拦截类组件&#xff0c;它没有具…...

【论文爬虫】自动将论文详细信息直送notion并自动下载(含源码)

输入论文标题&#xff0c;本爬虫将自动在semanticscholar.com和arxiv.com搜索该文章&#xff0c;自动获取其日期、作者、url、摘要等信息&#xff0c;并自动发送到你提前设置好的notion数据库里&#xff0c;同时自动从arxiv下载论文&#xff0c;然后将论文的保存地址在notion页…...

Android知识点整理

关键点 Activity Fragment 调试应用 处理应用程序配置 Intent 和 Intent 过滤器 会使用Context 后台处理指南 Android 的数据隐私 Android 网络数据安全教程 Android 中的依赖项注入 内容提供程序 Android 内存管理概览 一些重要的库 1.Glide 是一个 Android 上的…...

JSON与电子表格

一、介绍 电子表格是一种常见的电子数据处理工具&#xff0c;而JSON是一种数据交换格式。电子表格和JSON之间可以进行数据的导入和导出&#xff0c;以实现数据的相互转换和交互。 在电子表格中&#xff0c;数据以行和列的形式组织&#xff0c;并可以包含不同的数据类型。每个…...

Oracle创建用户、授权视图权限

1、创建用户密码 create user 用户名 identified by 密码;2、创建视图 CREATE VIEW 用户1.表名1 AS SELECT * FROM 用户2.表名2 t;3、授权 GRANT SELECT ON 用户2.表名2 TO 用户1 with GRANT OPTION &#xff1b;grant connect to 用户名; grant select on 用户1.表名1 t…...

MT4移动端应用指南:随时随地进行交易

如今&#xff0c;随着科技的不断发展&#xff0c;我们可以随时随地通过手机进行各种操作&#xff0c;包括进行金融交易。本文将为大家介绍一款优秀的金融交易软件——MT4&#xff08;可在mtw.so/6gwPno这点下&#xff09;移动端应用&#xff0c;并提供详细的使用指南&#xff0…...

【数据挖掘】学习笔记

文章目录 < 数据预处理 > 聚集&#xff1a;多个样本或特征进行合并&#xff08;减少样本规模、转换标度、更稳定&#xff09;抽样&#xff1a;抽取一部分样本降维&#xff1a;在地位空间中表示样本&#xff08;PCA、SVD&#xff09;特征选择&#xff1a;选取重要特征&am…...

MyBatis-Plus排除不必要的字段

查询学生信息排除年龄列表 &#x1f4da;&#x1f50d; 使用MyBatis-Plus排除某些字段。如果你想要进行查询&#xff0c;但又不需要包含某些字段&#xff0c;那么这个功能将非常适合你。&#x1f50d;&#x1f393;&#x1f4dd; 1. 学生信息查询-排除年龄列表 在使用 MyBat…...

webpack打包

文章目录 一、什么是webpack二、使用步骤1.创建一个新的文件夹,并将其初始化2.在当前目录下安装webpack以及webpack-cli3.配置webpack自定义命令,使之生效4.运行自定义命令,打包webpack5.打包成功之后会将内容打包到dist文件夹下6.配置webpack1)修改webpack打包入口和出口2)配置…...

【Java SE】抽象类与接口

目录 【1】抽象类 【1.1】抽象类概念 【1.2】抽象类语法 【1.3】抽象类特性 【1.4】抽象类的作用 【2】接口 【2.1】接口的概念 【2.2】语法规则 【2.3】接口使用 【2.4】接口特性 【2.5】实现多个接口 【2.6】接口间的继承 【2.7】接口使用实例 【2.8】Clonable …...

HTML <time> 标签

实例 如何定义时间和日期&#xff1a; <p>我们在每天早上 <time>9:00</time> 开始营业。</p><p>我在 <time datetime"2008-02-14">情人节</time> 有个约会。</p>定义和用法 <time> 标签定义公历的时间&…...

C++的向上转型

在 C/C++ 中经常会发生数据类型的转换,例如将 int 类型的数据赋值给 float 类型的变量时,编译器会先把 int 类型的数据转换为 float 类型再赋值;反过来,float 类型的数据在经过类型转换后也可以赋值给 int 类型的变量。 数据类型转换的前提是,编译器知道如何对数据进行取舍…...

Android开发-Mac Android开发环境搭建(Android Studio Mac环境详细安装教程,适合新手)...

1.进入Android Studio官网 https://developer.android.google.cn/studio 2.点击下载Android Studio. 3.将说明拉到最下方,选择Mac With Apple Chip.苹果芯片选择Apple Chip,如果是Intel芯片可以选择Intel. 4.下载完成后,双击进入Android Studio. 点击打开. 5.如果是第一次安装,…...

公园气象站:用科技力量,感知气象变化

在城市的喧嚣中&#xff0c;公园成为人们休闲娱乐的宁静之地。而在这些公园中的公园气象站静静地矗立着&#xff0c;不仅为公园的日常运营提供着重要数据&#xff0c;还在为游客的安全保驾护航。 用科技力量&#xff0c;感知气象变化 科技的创新为气象监测提供了更为精准的手…...

mysql-norebuild的ddl测试

一、简介 为了保证需要注意的有norebuild和ignore两种 /** Operations that InnoDB cares about and can perform without rebuild */ static const Alter_inplace_info::HA_ALTER_FLAGS INNOBASE_ALTER_NOREBUILD INNOBASE_ONLINE_CREATE| INNOBASE_FOREIGN_OPERATIONS| Alt…...

上海控安SmartRocket系列产品推介(六):SmartRocket PeneX汽车网络安全测试系统

产品概述 上海控安汽车网络安全测试系统PeneX&#xff08;Penetrator X&#xff09;是一款支持对整车及车辆零部件及子系统实施网络安全测试的系统&#xff0c;其包含硬件安全、软件系统安全、车内通信及车外通信四大安全测试系统&#xff1b;支持合规性测试&#xff0c;包含国…...

[TQLCTF 2022]simple_bypass

文章目录 涉及知识点解题过程 涉及知识点 无数字字母RCE自增马构造文件包含读取源码 解题过程 打开题目&#xff0c;随便注册一个用户为admin 登陆进去后&#xff0c;一眼发现杰哥图片有线索 我们F12看一下如何请求的 在这里发现可能存在文件包含漏洞 我们尝试读取下源码 …...

【每日一题】657. 机器人能否返回原点

657. 机器人能否返回原点 - 力扣&#xff08;LeetCode&#xff09; 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。…...

Java反射:探索对象创建与类信息获取

文章目录 1. 对象的创建2. 类的初始化2.1 类的加载2.2 类的连接2.3 类的初始化 3. 反射是什么&#xff1f;4. 获取Class类对象4.1 使用类名.class4.2 使用对象的getClass()方法4.3 使用Class.forName() 5. 获取构造器对象5.1 使用getConstructors()和getDeclaredConstructors()…...

【100天精通Python】Day55:Python 数据分析_Pandas数据选取和常用操作

目录 Pandas数据选择和操作 1 选择列和行 2 过滤数据 3 添加、删除和修改数据 4 数据排序 Pandas数据选择和操作 Pandas是一个Python库&#xff0c;用于数据分析和操作&#xff0c;提供了丰富的功能来选择、过滤、添加、删除和修改数据。 1 选择列和行 Pandas 提供了多种…...

163MusicLyrics:一键获取网易云QQ音乐歌词的专业工具

163MusicLyrics&#xff1a;一键获取网易云QQ音乐歌词的专业工具 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到高质量歌词而烦恼吗&#xff1f;163MusicLy…...

AI智能体密钥安全管理:AgentVault架构解析与实战指南

1. 项目概述&#xff1a;一个为AI智能体打造的“保险箱”最近在折腾AI智能体&#xff08;Agent&#xff09;应用开发的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;如何安全、可靠地管理智能体运行过程中需要用到的各种密钥、凭证和敏感数据&#xff1f;无论是调用Op…...

深度学习图像风格迁移:从Gatys算法到PyTorch工程实践

1. 项目概述&#xff1a;一个基于深度学习的图像风格迁移应用最近在GitHub上闲逛&#xff0c;发现了一个名为“aristoapp/DDalkkak”的项目。单看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但点进去一看&#xff0c;发现这是一个关于图像风格迁移&#xff08;Image S…...

Claude API企业准入最后窗口期:2024Q3起强制启用OAuth 2.1+硬件级密钥绑定,现在不升级将无法续签

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Claude API企业准入政策的演进与合规紧迫性 随着Anthropic对Claude模型商用边界的持续收束&#xff0c;企业级API接入正从“技术可用性”转向“治理可验证性”。2024年Q2起&#xff0c;所有新注册企业账…...

3D打印乐高手机支架:低成本打造高清视频会议摄像头方案

1. 项目概述与核心思路如果你和我一样&#xff0c;对视频会议、直播时笔记本自带摄像头那“感人”的画质感到无奈&#xff0c;同时又觉得单独购买一个高品质的网络摄像头是一笔不小的开销&#xff0c;那么这个项目绝对值得你花上一个周末的时间来折腾。它的核心思路非常巧妙&am…...

如何3步获取百度网盘真实下载地址实现满速下载

如何3步获取百度网盘真实下载地址实现满速下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否曾被百度网盘的非会员下载速度困扰&#xff1f;当下载重要的工作文件、学…...

终极指南:如何为你的Mac鼠标安装强大定制功能

终极指南&#xff1a;如何为你的Mac鼠标安装强大定制功能 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款革命性的开源工具…...

AXI交叉开关IP核:SoC内部高并发数据传输的核心枢纽设计与实战

1. 项目概述&#xff1a;一个高效、可配置的片上总线交叉开关在复杂的数字系统设计&#xff0c;尤其是片上系统&#xff08;SoC&#xff09;领域&#xff0c;多个主设备&#xff08;如CPU、DMA控制器&#xff09;需要同时访问多个从设备&#xff08;如内存、外设控制器&#xf…...

基于LLM与视觉模型融合的智能体框架:从原理到工业质检实践

1. 项目概述&#xff1a;当AI学会“看”与“想”最近在探索AI与视觉结合的落地场景时&#xff0c;我深度体验了landing-ai/vision-agent这个项目。它不是一个简单的图像识别工具&#xff0c;而是一个试图让AI具备“视觉推理”能力的智能体框架。简单来说&#xff0c;它让AI不仅…...

面向开发者的轻量级计划管理工具:配置驱动与命令行优先

1. 项目概述&#xff1a;一个为开发者而生的计划管理工具在软件开发的世界里&#xff0c;我们每天都在与各种“计划”打交道&#xff1a;版本迭代计划、个人学习计划、项目里程碑、甚至是每日的待办清单。然而&#xff0c;一个尴尬的现实是&#xff0c;市面上大多数项目管理工具…...