第三十回: LisvtView响应事件
我们在上一章回中介绍了如何给ListView添加分隔线,本章回中将介绍ListView响应事件相关的知识.闲话休提,让我们一起Talk Flutter吧。
概念介绍
我们在这里说的ListView响应事件主要分两种类型:
- 一种是滑动ListView时ListView做出响应,我们称其为滑动事件;
- 另外一种是点击ListView中的某个项目时ListVie做出响应,我们称其为点击事件。
本章回中将详细介绍这两种事件相关的知识。
响应方法
滑动事件
响应滑动事件通过controller属性实现,只需要给该属性赋值就能响应滑动事件。赋值时需要创建ScrollController类型的对象,并且添加监听器,下面是示例代码:
//创建对象并且添加监听器
ScrollController _scrollController = ScrollController();_scrollController.addListener(() {//offset并不是ListView中的索引值print("offset---: ${_scrollController.offset}");//Position的信息多,包含了offsetprint("position---: ${_scrollController.position}");});//给controller属性赋值Widget listEx = ListView(controller: _scrollController,//其它内容省略不写}
在上面的代码中我们通过controller属性来响应滑动事件,当滑动ListView时ScrollController对象中的监听器会响应滑动事件,我们在监听器中打印出了滑动偏移的距离,也就是代码中的offset。
点击事件
点击事件通过ListTitle中的onTap属性实现,在创建ListView时会有index参数,它表示ListView中某个项目的索引,把它通过参数传递给ListTitle对象,然后在ListTitle对象的onTap属性中就可以使用该索引值,下面的示例代码中打印出了索引值,通过日志就能知道哪个项目被点击了,进而可以对点击事件做出响应,下面是示例代码:
//在参数是会入索引,然后通过onTap来响应索引
ListTile listItem(IconData icon, String content,int index) {return ListTile(leading: Icon(icon,color: Colors.blue,),title: Text(content,style: const TextStyle(color: Colors.black,fontSize: 22,),),onTap:(){print(" Item $index onClicked");} ,);
}Widget listEx01 = ListView.builder(controller: _scrollController,itemCount: 8,itemExtent: 60,itemBuilder: (BuildContext context, int index) {//把索引值传递给ListTitlereturn listItem(Icons.ice_skating, "$index",index);},
);
在上面的代码中利用itemBuilder属性中的index参数可以得知ListView中哪个项目被点击了,然后把该index传递给ListTitle,也就是ListView中的某个项目,在该项目的onTap属性中把传递来的index打印出来,从打印出的日志中可以得知哪个项目被用户点击了。打印日志只是一个简单的响应动作,大家可以依据项目的需求做响应动作,不必拘泥于示例代码中打印日志这种响应动作。
经验总结
- 滑动事件主要明白
controller属性以及监听器中的offset,通过offset可以在屏幕上快速跳转。注意offset是从屏幕顶部开始计算的,其单位是像素,它表示从顶部到滑动位置的偏移值,有些看官可能会认为它是ListView中的索引值,这种观点是错误的,只能说明这位看官把它与点击事件中的index混淆了。 - 点击事件主要明白indext和
onTap属性就可以。index是索引值,它是创建ListView中某个项目时传递来的,通过它可以得知ListView中哪个项目被点击了,onTap属性是项目的属性,通过该属性可以让项目响应点击事件。 - 在实际项目中使用ListVeiw时需要响应滑动事件和点击事件,不过点击事件使用频率相对高一些。因此,大家可以重点掌握点击事件的内容。
看官们,关于"ListView响应事件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!
相关文章:
第三十回: LisvtView响应事件
我们在上一章回中介绍了如何给ListView添加分隔线,本章回中将介绍ListView响应事件相关的知识.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的ListView响应事件主要分两种类型: 一种是滑动ListView时ListView做出响应,我们…...
重磅!用友荣登全球5强
近日,全球权威信息技术研究和顾问公司Gartner发布《Market Share: All Software Markets, Worldwide,2022》报告,用友在EAM(资产管理)市场再创新高,市场占有率位居全球第五位,亚太第一位&#x…...
计算机组成原理实验报告二-认识汇编语言
实验资料: https://wwpv.lanzoue.com/b05drqjef 密码:d19t 使用txt文档编写下面C源码,文档命名为【学号_hello.c】并使用Mingw工具(是 Minimalist GNU for Windows的缩写)的bin文件夹下gcc.exe带选项编译()…...
都说计算机今年炸了,究竟炸到什么程度呢?
近期,最大的计算机领域新闻莫过于Intel CPU严重漏洞曝光。该漏洞被称为“Meltdown”和“Spectre”,几乎涵盖了所有使用Intel芯片的计算机,包括PC、笔记本电脑、服务器和移动设备。 Meltdown漏洞的主要风险是黑客可以利用此漏洞访问操作系统的…...
0Ω的电阻作用
0欧姆电阻即电阻标值为0欧姆的电阻,多用于PCB设计等方面,是一种理想电阻。那0欧姆电阻是表示没有电阻吗?当然不是,0欧姆电阻的阻值不是0欧姆,只是接近0欧姆。 1、调试方便或者兼容设计:可以选择器件、功能…...
02 PostGIS常用空间分析函数
常用的PostGIS空间分析函数清单: 序号函数名描述示例1ST_AsText(geometry)将几何对象转换为文本形式的WKT字符串ST_AsText(ST_GeomFromText(‘POINT(1 2)’)) 返回 ‘POINT(1 2)’2ST_GeometryType(geometry)返回几何对象的类型,如POINT、LINESTRING、P…...
[Golang] 管理日志信息就用Zap包
😚一个不甘平凡的普通人,致力于为Golang社区和算法学习做出贡献,期待您的关注和认可,陪您一起学习打卡!!!😘😘😘 🤗专栏:算法学习 &am…...
【pytest】执行环境切换的两种解决方案
一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等等,并且在DevOps理念中,往往自动化都会与Jenkins进行CI/CD,不论是定时执行策略…...
2023国赛tomcat题
环境: 10.10.120.128 安装 tomcaA 10.10.120.129 安装tomcatB 10.10.120.130 安装 nginx 配置dns: 正向解析 反向解析 Tomcat ssl配置 [root@localhost ~]# tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz [root@localhost ~]# mv jdk-11.0.8 /usr/local/ Vim /etc/profile …...
计算机视觉——day 92 基于跨领域协作学习的单图像去雨
基于跨领域协作学习的单图像去雨 1. Introduction3. Proposed method3.1 网络架构 4. Experiments and results4.1 数据集和指标4.3 合成图像的结果4.8 建模复杂度和运行时间 5. Conclusion 1. Introduction 深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而&am…...
Java 正则表达式
Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 示例 boolean b String.matches(String regex) ;regex 有2种形式: 字符串 直接就是一…...
Oracle索引知识看这一篇就足够
🏆 文章目标:本篇介绍Oracle索引知识以及案例场景 🍀 Oracle索引知识看这一篇就足够 ✅ 创作者:Jay… 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,请帮忙…...
kafka命令行操作
新老版本kafka命令行操作 啓動Kafka: kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties Kafka命令行操作 查看当前集群中已存在的主题topic 旧的方式 kafka-topics.sh --zookeeper bdphdp01:2181 --list kafka-topics.sh --zookeeper bdphd…...
Pinia 上手使用(store、state、getters、actions)
参考链接:https://juejin.cn/post/7121209657678364685 Pinia官方:https://pinia.vuejs.org/zh/introduction.html 一、安装 npm i pinia -S二、main.js 引入 import { createApp } from "vue" import App from "./App.vue" impor…...
C++小项目之文本编辑器mynote(1.0.0版本)
2023年5月19日,周五晚上: 今天晚上突然想写一个运行在命令行上的文本编辑器,因为平时写文本时老是要创建新的文本文件,觉得太麻烦了。捣鼓了一个晚上,才选出一个我觉得比较满意的。我把这个程序添加到了系统环境变量中…...
人工智能的界面革命,消费者与企业互动的方式即将发生变化。
本文来源于 digitalnative.substack.com/p/ais-interface-revolution 描述了一种社会现象: 随着真实友谊的减少和虚拟友谊的增加,越来越多的人开始将AI聊天机器人视为自己的朋友,甚至建立了深厚的情感纽带。这可能与当前人们越来越孤独的现实…...
深度学习课程:手写体识别示例代码和详细注释
Pytorch 的快速入门,参见 通过两个神经元的极简模型,清晰透视 Pytorch 工作原理。本文结合手写体识别项目,给出一个具体示例和直接关联代码的解释。 1. 代码 下面代码展示了完整的手写体识别的 Python 程序代码。代码中有少量注释。在本文后…...
10-03 单元化架构设计
设计原则 透明 对开发者透明 在做实现时,不依赖于单元划分和部署对组件透明 在组件运行时,不感知其承载单元对数据透明 数据库并不知道为哪个单元提供服务 业务可分片 系统业务复杂度足够高系统可以按照某一维度进行切分系统数据必须可以被区分 业务…...
JAVA—实验3 继承与多态
一、实验目的 1.掌握类的继承机制 2.掌握抽象类的定义方法 2.熟悉类中成员变量和方法的访问控制 3.熟悉成员方法或构造方法的多态性 二、实验内容 1. Circle类及其子类 【问题描述】 实现类Circle,半径为整型私有数据成员 1)构造方法:参数为…...
TCP协议和相关特性
1.TCP协议的报文结构 TCP的全称为:Transmission Control Protocol。 特点: 有连接可靠传输面向字节流全双工 下面是TCP的报文结构: 源端口和目的端口: 源端口表示数据从哪个端口传输出来,目的端口表示数据传输到哪个端口去。…...
App Inventor蓝牙调试避坑指南:从连接失败到数据乱码,一次讲清所有常见问题
App Inventor蓝牙调试避坑指南:从连接失败到数据乱码的实战解决方案在移动应用开发领域,蓝牙通信一直是实现设备间短距离数据交换的核心技术之一。对于使用App Inventor的开发者而言,蓝牙模块提供了无需复杂编码即可实现无线通信的便捷途径。…...
如何高效批量下载音乐歌词:智能歌词管理完整指南
如何高效批量下载音乐歌词:智能歌词管理完整指南 【免费下载链接】ZonyLrcToolsX ZonyLrcToolsX 是一个能够方便地下载歌词的小软件。 项目地址: https://gitcode.com/gh_mirrors/zo/ZonyLrcToolsX ZonyLrcToolsX 是一款专业的跨平台歌词下载工具,…...
毕业设计 yolov11骨折检测医疗辅助系统(源码+论文)
文章目录 0 前言1 项目运行效果2 课题背景2.1 研究背景2.2 国内外研究现状2.3 研究意义 3 设计框架(骨折检测系统设计框架说明)3.1. 系统架构图3.2. 技术选型3.2.1 核心组件3.2.2 辅助工具 3.3. 核心模块设计3.3.1 YOLO模型训练模块训练流程图关键伪代码…...
巨量投放总结
巨量商务管理平台 : https://business.oceanengine.com 巨量广告投放平台: https://ad.oceanengine.com 商务管理平台 账户 广告组 计划 广告投放平台 层级关系: 广告组 -> 计划 -> 创意 对应FB: 系列 - > 广告组 -> 广告...
基于PIC32的嵌入式MIDI合成器:从波表合成到硬件实现
1. 项目概述:一个基于嵌入式微控制器的MIDI声音合成器如果你对电子音乐制作、嵌入式开发,或者DIY硬件合成器感兴趣,那么“REMI Synth”这个项目绝对值得你花时间深入了解。它本质上是一个数字单音MIDI控制的声音合成器,核心是一块…...
如何快速解锁中兴光猫权限:zteOnu工具完整使用指南
如何快速解锁中兴光猫权限:zteOnu工具完整使用指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 中兴光猫作为家庭网络的核心设备,其强大的硬件性能常常被默认…...
终极免费音乐解锁工具:打破平台枷锁,让音乐重获自由
终极免费音乐解锁工具:打破平台枷锁,让音乐重获自由 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地…...
别再盲调temperature=0.2!DeepSeek补全效果突变的4个隐藏参数,资深架构师压箱底调参清单
更多请点击: https://intelliparadigm.com 第一章:别再盲调temperature0.2!DeepSeek补全效果突变的4个隐藏参数,资深架构师压箱底调参清单 DeepSeek-R1/VL 等开源大模型在实际部署中,仅靠调节 temperature 往往收效甚…...
3大技术突破:重新定义Switch游戏安装性能极限
3大技术突破:重新定义Switch游戏安装性能极限 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer Awoo Installer是一款专为破解版Nintendo…...
终极指南:用AlwaysOnTop免费开源工具彻底改变你的Windows工作方式
终极指南:用AlwaysOnTop免费开源工具彻底改变你的Windows工作方式 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在多个窗口间来回切换,浪费宝…...
