Flutter:如何响应触摸事件
目录传送门:《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:如何响应触摸事件相关推荐
- cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate
cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate 以下内容转载自:http://blog.sin ...
- Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件
原文地址:http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它 ...
- iOS实现ScrollView中子控件(Button,自定义View)的触摸事件响应
最近要做个信息登记界面,在scrollView中添加了多个button和一个自定义的view(画板)来实现签名效果,画板中实现了touchBegin,touchMove等触摸事件方法.为了使butto ...
- iOS —— 触摸事件传递及响应与手势
iOS 的事件分为三种,触摸事件(Touch Event).加速器事件(Motion Events).远程遥控事件(Remote Events).这些事件对应的类为UIResponder.本文只探究触 ...
- 屏幕旋转之后的触摸坐标_iOS 中触摸事件传递和响应原理
作者:雪山飞狐_91ae 链接:https://www.jianshu.com/p/4aeaf3aa0c7e 系统响应阶段 1.手指触碰屏幕,屏幕感受到触摸后,将事件交由IOKit来处理. 2.IOK ...
- iOS中触摸事件传递和响应原理
系统响应阶段 1.手指触碰屏幕,屏幕感受到触摸后,将事件交由IOKit来处理. 2.IOKIT将触摸事件封装成IOHIDEvent对象,并通过mach port传递给SpringBoard进程. ma ...
- iOS开发触摸事件的传递
1. iOS中的三种事件类型 触摸事件.加速计事件.远程事件. 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 加速计事件:通过加速器进行触发(例如手机晃动,典型应用是微信摇一摇) 远程事件: ...
- Cocos-2d 关于SwallowTouch,进一步解释触摸事件分发机制
问题情境 模拟一个类似游戏提示信息的层: 1.游戏主场景可触摸,可交互: 2.当提示显示提示信息时,只有提示信息这一层可触摸同用户交互,其背景则不能继续响应触摸事件 3.当提示信息层从主场景中移除之后 ...
- Android 触摸事件机制(三) View中触摸事件详解
本文将对View中触摸事件相关的内容进行介绍.重点介绍的是dispatchTouchEvent(), onTouchEvent()这两个API以及OnTouchListener接口. 注意:本文是基于 ...
最新文章
- 自定义是否允许文件继续执行下去
- linux启动后分区数据变化,求助!我删除了Linux启动分区
- ACE在AIX环境下编译指南
- 升级Python2.7后 no module name yum
- mssql 批量导入mysql_mssql 数据库 批量导入指令
- 一道简单的多维数组取值问题
- 学习Hadoop需要哪些预备知识?Java是否必须会?
- startallback怎么用_startallback使用教程
- 帧差法——动态检测——统计车流量
- 运维 --- Nginx高级功能介绍
- 环球电子公司将为新的Virgin TV 360平台提供语音遥控器
- Unity初级案例 - 吃豆人(Unity2017.2.0)Day 2
- 【H3C模拟器】华三交换机配置IRF堆叠
- java对象的封装继承和多肽_java零基础入门第七天 继承 多肽 重写 重载
- 所以Web 3.0到底是什么?
- 递推DP(至少和至多之间的转换
- python安装不了是什么问题_python为什么安装了运行不了?
- Libgdx 之Actions 动作类
- 小程序关注公众号组件 official-account
- 计算机室免费开放活动方案,免费低收费开放方案