第二十三回:Flutter中的事件处理

这篇具有很好参考价值的文章主要介绍了第二十三回:Flutter中的事件处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


我们在上一章回中介绍了对齐和边距类Widget相关的内容,,本章回中将介绍 事件处理相关的知识.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里说的事件表示点击和滑动屏幕时触发的事件,类似Android中的TouchEvent.Flutter提供了PointerEvent类及其子类来封装不同类型的事件。同时还提供了Listener组件来管理事件,当事件被触发后Listener将把事件传递到相应的组件上,进而完成组件对事件的响应。本章回中将详细介绍该组件的使用方法。

使用方法

Listener也是一个Widget,它的使用方法类似容器类Widget,它提供了相关的属性用来处理不同类型的事件,它还提供了一个child属性,它把事件传递给该属性对应的组件,进而让组件来响应不同的事件。接下来我们介绍一下Listener提供的属性。

  • onPointerDown属性,用来响应down事件,比如手指在屏幕上按下时就会触发这类事件;
  • onPointerUp属性,用来响应up事件,比如手指在屏幕上松开时就会触发这类事件;
  • onPointerMove属性,用来响应move事件,比如手指在屏幕上滑动时就会触发这类事件;

Listener还提供了其它的属性,这里不再一一介绍。这三个属性是Listener中常用的属性,这三个属性已经可以满足决大部分的程序需求。

给这三个属性赋值时需要使用带有参数的方法,这里的参数必须是PointerEvent类及其子类的对象,从参数中可以获取到事件类型,以及其它与事件相关的信息,常用的是触发事件点的坐标。我们可以通过PointerEvent类的position属性来获取到事件的坐标值。

示例代码

  void _eventDown(PointerDownEvent event) => print("Event Down: position:${event.position}");
  void _eventUp(PointerEvent event) => print("Event Up: position:${event.position}");
  void _eventMove(PointerEvent event) => print(
      "Event Move: position:${event.position} transform: ${event.transform},delta: ${event.delta}");
Listener(
  onPointerDown: _eventDown,
  onPointerMove: _eventMove,
  onPointerUp: _eventUp,
  child: const Text(
    "Event Listener inside",
    style: TextStyle(
      color: Colors.black87,
      fontSize: 16,
      backgroundColor: Colors.white,
    ),
  )),

上面的代码中定义了三个方法,把它们分别赋值给不同的属性,这样可以响应不同类型的事件。在三个方法中我们打印出了事件的类型,以及事件触发点的坐标值。最后我们把Text组件赋值给了Listener的child属性,这相当于让Text组件来响应不同类型的事件。

我们在这里只列出了核心代码,完成的代码可以到Github上ex014文件中查看。编译并且运行上面的程序,就会出现一个白底黑字区域,点击此区域时就会触发相应的事件,大家可以在日志中看到代码中打印出的内容。我们在这里就不演示日志的内容了,建议看官们自动动手试一试。

看官们,关于"Flutter中事件处理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!文章来源地址https://www.toymoban.com/news/detail-433741.html

到了这里,关于第二十三回:Flutter中的事件处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GEEer成长日记二十三:chatGPT可以帮我们提取水体边缘吗?

    欢迎关注公众号: GEEer成长日记 目录 01  首先,chatGPT是什么? 02 进入正题,如何进行边缘检测?        chatGPT推出之后,引发了激烈的讨论,今天带各位看看它在GEE方面能为我们做什么。原本想着它可以帮我们写代码,奈何昨晚奋战到巴西输球,也没得到一个较好的结果。

    2023年04月25日
    浏览(40)
  • 蓝桥杯刷题第二十三天

    题目描述 小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。 这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小

    2023年04月22日
    浏览(43)
  • 二十三种设计模式第二十篇--备忘录模式

    备忘录模式,备忘录模式属于行为型模式。它允许在不破坏封装的情况下捕获和恢复对象的内部状态。 保存一个对象的某个状态,以便在适当的时候恢复对象,该模式通过创建一个备忘录对象来保存原始对象的状态,并将其存储在一个负责管理备忘录的负责人对象中。 备忘

    2024年02月14日
    浏览(37)
  • 第二十三天:mysql数据备份及还原

    一、备份类型 完全备份,部分备份 完全备份:整个数据集 部分备份:只备份数据子集,如部分库或表 完全备份、增量备份、差异备份 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂 差异备份:仅备份最近一次完全备

    2024年02月19日
    浏览(36)
  • 【LeetCode 75】第二十三题(2352)相等行列对

    目录 题目: 示例: 分析: 代码+运行结果: 题目很简洁,就是要我们寻找行与列相同的对数。相同行与列不仅是要元素相同,还需要顺序也一样(难度变小了,如果不要求顺序一样的话,还需要单独统计元素以及出现次数,会稍微麻烦一点) 一般要寻找相同的数的时候,我

    2024年02月13日
    浏览(35)
  • Nodejs 第二十三章(Markdown 转 html)

    Markdown 转换html 是一个非常常见的需求 什么是 Markdown ? Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。 我们需要用到三个库实现 EJS :一款强大的JavaScript模板引擎,它可以帮助我们在HTML中嵌入动态内容。使用EJS,您可以轻松地将Markdown转换为

    2024年02月04日
    浏览(37)
  • 二十三种设计模式第二十四篇--访问者模式(完结撒花)

    在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。 通过这种方式,元素的执行算法可以随着访问者改变而改变。 这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的

    2024年02月14日
    浏览(42)
  • 【从零开始学习JAVA | 第二十三篇】集合体系结构

    目录 前言: 单列集合:      set与list的区别: 双列集合: map的特点: 总结:                   JAVA中为我们提供了很多集合,这些集合都有自己很独特的特点,因此我们要学习所有的集合,但是在学习所有的集合之前,我们还是先为大家介绍一下JAVA的集合体系结构,这

    2024年02月16日
    浏览(54)
  • 第二十三章 原理篇:Pix2Seq

    大夏天我好像二阳了真是要命啊。 现在找到工作了,感觉很快乐,但是也有了压力。 《论你靠吹牛混进公司后该怎么熬过试用期》 希望自己能保持学习的习惯!加油! 参考教程: https://arxiv.org/pdf/2109.10852.pdf https://github.com/google-research/pix2seq https://zhuanlan.zhihu.com/p/421851551 ht

    2024年02月13日
    浏览(34)
  • 读书笔记-《ON JAVA 中文版》-摘要26[第二十三章 注解]

    注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方式,使我们可以在稍后的某个时刻更容易的使用这些数据。 通过使用注解,你可以将元数据保存在 Java 源代码中。并拥有如下有下优势:简单易读的代码,编译器类型检查,使用 annotation API 为自己的注

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包