目录传送门:《Flutter快速上手指南》先导篇

除了 GestureDetector,Flutter 还提供了 Listener 来监听触摸事件。

它也是一个 Widget,使用它包裹一个 Widget,就能能够处理该 Widget 上发生的触摸事件。

1. Listener 的常用属性

看看通过 Listener 可以处理哪些事件:

属性 类型 说明
onPointerDown (PointerDownEvent event){} 按下时触发
onPointerMove (PointerDownEvent event){} 移动时触发
onPointerEnter (PointerDownEvent event){} 进入Widget区域时触发
onPointerExit (PointerDownEvent event){} 离开Widget区域时触发
onPointerUp (PointerDownEvent event){} 离开屏幕时触发
onPointerDown (PointerDownEvent event){} 按下时触发
onPointerCancel (PointerDownEvent event){} 取消触摸时触发
behavior HitTestBehavior 控制事件传递。这个下面再说明

1.1 Listener 的使用

先看看例子?:

Listener(onPointerUp: (e){Navigator.pop(context);},child: Container(height: 80,color: Colors.blue,alignment: Alignment.center,child: Text(text,style: TextStyle(color: Colors.white, decoration: TextDecoration.none),),),
)
复制代码

还是那套用法,使用它去包裹要处理事件的 Widget 节点,就相当于使节点获得处理事件的能力。

1.2 HitTestBehavior

HitTestBehavior 用于控制事件的传递方式。

  • HitTestBehavior.deferToChild

    只有有子 Widget 通过了 Hit-Test,才接收一系列的事件,接收区域也会被限制在该子 Widget 区域中。

  • HitTestBehavior.opaque

    Widget 能够通过 Hit-Test,接收事件,且能阻止在它之前的 Widget(直观来看就是被它挡住的 Widget)接收事件。

    简单来说就是事件 不能透传

  • HitTestBehavior.translucent

    Widget 能够通过 Hit-Test,接收事件,且不会阻止它之前的 Widget(直观来看就是被它挡住的 Widget)接收事件。

    简单来说就是事件 能透传

1.3 PointerEvent

PointerEvent 是 Listener 回调中的参数,储存了一系列的触摸信息。

看看一些比较常用的属性:

属性 类型 说明
pointer int 标示一次触摸id。重新触摸会分配新的值
kind PointerDeviceKind 触摸事件的输入类型。是触摸,还是鼠标..
position Offset 当前坐标。相对于全局坐标
delta Offset 指针移动期间,与上一次事件的移动距离
pressure double 按压力度。取值范围 0.0-1.0

2.不接收触摸事件 - IgnorePointer

如果不想让一个 Widget 接收触摸事件,那就用 IgnorePointer 包裹它好了。

IgnorePointer(ignoring: true,child: MyWidget(),
)
复制代码

使用比较简单,ignoring 控制是否忽略,默认为 true。

目录传送门:《Flutter快速上手指南》先导篇

如何找到我?

传送门:CoorChice 的主页

传送门:CoorChice 的 Github

转载于:https://juejin.im/post/5ca81f28e51d4577a532b893

Flutter:如何响应触摸事件相关推荐

  1. cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate

    cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate    以下内容转载自:http://blog.sin ...

  2. Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件

    原文地址:http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它 ...

  3. iOS实现ScrollView中子控件(Button,自定义View)的触摸事件响应

    最近要做个信息登记界面,在scrollView中添加了多个button和一个自定义的view(画板)来实现签名效果,画板中实现了touchBegin,touchMove等触摸事件方法.为了使butto ...

  4. iOS —— 触摸事件传递及响应与手势

    iOS 的事件分为三种,触摸事件(Touch Event).加速器事件(Motion Events).远程遥控事件(Remote Events).这些事件对应的类为UIResponder.本文只探究触 ...

  5. 屏幕旋转之后的触摸坐标_iOS 中触摸事件传递和响应原理

    作者:雪山飞狐_91ae 链接:https://www.jianshu.com/p/4aeaf3aa0c7e 系统响应阶段 1.手指触碰屏幕,屏幕感受到触摸后,将事件交由IOKit来处理. 2.IOK ...

  6. iOS中触摸事件传递和响应原理

    系统响应阶段 1.手指触碰屏幕,屏幕感受到触摸后,将事件交由IOKit来处理. 2.IOKIT将触摸事件封装成IOHIDEvent对象,并通过mach port传递给SpringBoard进程. ma ...

  7. iOS开发触摸事件的传递

    1. iOS中的三种事件类型 触摸事件.加速计事件.远程事件. 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 加速计事件:通过加速器进行触发(例如手机晃动,典型应用是微信摇一摇) 远程事件: ...

  8. Cocos-2d 关于SwallowTouch,进一步解释触摸事件分发机制

    问题情境 模拟一个类似游戏提示信息的层: 1.游戏主场景可触摸,可交互: 2.当提示显示提示信息时,只有提示信息这一层可触摸同用户交互,其背景则不能继续响应触摸事件 3.当提示信息层从主场景中移除之后 ...

  9. Android 触摸事件机制(三) View中触摸事件详解

    本文将对View中触摸事件相关的内容进行介绍.重点介绍的是dispatchTouchEvent(), onTouchEvent()这两个API以及OnTouchListener接口. 注意:本文是基于 ...

最新文章

  1. 自定义是否允许文件继续执行下去
  2. linux启动后分区数据变化,求助!我删除了Linux启动分区
  3. ACE在AIX环境下编译指南
  4. 升级Python2.7后 no module name yum
  5. mssql 批量导入mysql_mssql 数据库 批量导入指令
  6. 一道简单的多维数组取值问题
  7. 学习Hadoop需要哪些预备知识?Java是否必须会?
  8. startallback怎么用_startallback使用教程
  9. 帧差法——动态检测——统计车流量
  10. 运维 --- Nginx高级功能介绍
  11. 环球电子公司将为新的Virgin TV 360平台提供语音遥控器
  12. Unity初级案例 - 吃豆人(Unity2017.2.0)Day 2
  13. 【H3C模拟器】华三交换机配置IRF堆叠
  14. java对象的封装继承和多肽_java零基础入门第七天 继承 多肽 重写 重载
  15. 所以Web 3.0到底是什么?
  16. 递推DP(至少和至多之间的转换
  17. python安装不了是什么问题_python为什么安装了运行不了?
  18. Libgdx 之Actions 动作类
  19. 小程序关注公众号组件 official-account
  20. 计算机室免费开放活动方案,免费低收费开放方案

热门文章

  1. 解决页面报错 500-内部服务器错误
  2. Deblurring by Realistic Blurring 图像去模糊论文解读
  3. Reac-18 portal传送门
  4. 辐射安全管理考试笔记
  5. 遥感卫星影像数据全色波段和多光谱波段
  6. LeetCode 720. 词典中最长的单词
  7. ppt讲解中的过渡_PPT过渡页其实大有学问!如何让你的PPT过渡页更加精美?
  8. Vegas中的Vignette暗角视频特效如何使用?
  9. My shortcomings | 我的不足
  10. MySql学习【一】mysql的安装,操作数据库/表/查询表中数据/mysql日期计算