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 | 控制事件传递。这个下面再说明 |
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
【Flutter:如何响应触摸事件】只有有子 Widget 通过了 Hit-Test,才接收一系列的事件,接收区域也会被限制在该子 Widget 区域中。
- HitTestBehavior.opaque
Widget 能够通过 Hit-Test,接收事件,且能阻止在它之前的 Widget(直观来看就是被它挡住的 Widget)接收事件。
简单来说就是事件 不能透传。
- HitTestBehavior.translucent
Widget 能够通过 Hit-Test,接收事件,且不会阻止它之前的 Widget(直观来看就是被它挡住的 Widget)接收事件。
简单来说就是事件 能透传。
看看一些比较常用的属性:
属性 | 类型 | 说明 |
---|---|---|
pointer | int | 标示一次触摸id。重新触摸会分配新的值 |
kind | PointerDeviceKind | 触摸事件的输入类型。是触摸,还是鼠标.. |
position | Offset | 当前坐标。相对于全局坐标 |
delta | Offset | 指针移动期间,与上一次事件的移动距离 |
pressure | double | 按压力度。取值范围 0.0-1.0 |
IgnorePointer(
ignoring: true,
child: MyWidget(),
)
复制代码
使用比较简单,ignoring 控制是否忽略,默认为 true。
目录传送门:《Flutter快速上手指南》先导篇
如何找到我?
传送门:CoorChice 的主页
传送门:CoorChice 的 Github
转载于:https://juejin.im/post/5ca81f28e51d4577a532b893
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- (七)谈条件
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树
- Linux下面如何查看tomcat已经使用多少线程
- thinkphp|thinkphp 3.2 如何调用第三方类库