第一百三十六回 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组件
文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了下拉刷新组件相关的内容,本章回中将介绍 WillPopScope组件.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在本章回中介绍的WillPopScope组件是一种事件拦截类组件,它没有具…...
【论文爬虫】自动将论文详细信息直送notion并自动下载(含源码)
输入论文标题,本爬虫将自动在semanticscholar.com和arxiv.com搜索该文章,自动获取其日期、作者、url、摘要等信息,并自动发送到你提前设置好的notion数据库里,同时自动从arxiv下载论文,然后将论文的保存地址在notion页…...
Android知识点整理
关键点 Activity Fragment 调试应用 处理应用程序配置 Intent 和 Intent 过滤器 会使用Context 后台处理指南 Android 的数据隐私 Android 网络数据安全教程 Android 中的依赖项注入 内容提供程序 Android 内存管理概览 一些重要的库 1.Glide 是一个 Android 上的…...
JSON与电子表格
一、介绍 电子表格是一种常见的电子数据处理工具,而JSON是一种数据交换格式。电子表格和JSON之间可以进行数据的导入和导出,以实现数据的相互转换和交互。 在电子表格中,数据以行和列的形式组织,并可以包含不同的数据类型。每个…...
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 ;grant connect to 用户名; grant select on 用户1.表名1 t…...
MT4移动端应用指南:随时随地进行交易
如今,随着科技的不断发展,我们可以随时随地通过手机进行各种操作,包括进行金融交易。本文将为大家介绍一款优秀的金融交易软件——MT4(可在mtw.so/6gwPno这点下)移动端应用,并提供详细的使用指南࿰…...
【数据挖掘】学习笔记
文章目录 < 数据预处理 > 聚集:多个样本或特征进行合并(减少样本规模、转换标度、更稳定)抽样:抽取一部分样本降维:在地位空间中表示样本(PCA、SVD)特征选择:选取重要特征&am…...
MyBatis-Plus排除不必要的字段
查询学生信息排除年龄列表 📚🔍 使用MyBatis-Plus排除某些字段。如果你想要进行查询,但又不需要包含某些字段,那么这个功能将非常适合你。🔍🎓📝 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> 标签
实例 如何定义时间和日期: <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.如果是第一次安装,…...
公园气象站:用科技力量,感知气象变化
在城市的喧嚣中,公园成为人们休闲娱乐的宁静之地。而在这些公园中的公园气象站静静地矗立着,不仅为公园的日常运营提供着重要数据,还在为游客的安全保驾护航。 用科技力量,感知气象变化 科技的创新为气象监测提供了更为精准的手…...
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(Penetrator X)是一款支持对整车及车辆零部件及子系统实施网络安全测试的系统,其包含硬件安全、软件系统安全、车内通信及车外通信四大安全测试系统;支持合规性测试,包含国…...
[TQLCTF 2022]simple_bypass
文章目录 涉及知识点解题过程 涉及知识点 无数字字母RCE自增马构造文件包含读取源码 解题过程 打开题目,随便注册一个用户为admin 登陆进去后,一眼发现杰哥图片有线索 我们F12看一下如何请求的 在这里发现可能存在文件包含漏洞 我们尝试读取下源码 …...
【每日一题】657. 机器人能否返回原点
657. 机器人能否返回原点 - 力扣(LeetCode) 在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。…...
Java反射:探索对象创建与类信息获取
文章目录 1. 对象的创建2. 类的初始化2.1 类的加载2.2 类的连接2.3 类的初始化 3. 反射是什么?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库,用于数据分析和操作,提供了丰富的功能来选择、过滤、添加、删除和修改数据。 1 选择列和行 Pandas 提供了多种…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
