这个章节将会讲解如何监听和响应 Flutter 的手势操作 gestures。典型的手势操作包括点击、拖动和缩放。
Flutter 中的手势有两个不同的层次:
- 第一层是原始的指针指向事件,描述了屏幕上由触摸板、鼠标、指示笔等触发的指针的位置和移动。
- 第二层包含 gestures,描述了由上述一个或多个指针移动组成的具有特殊语义的操作。
1. 指针
Pointer 代表的是人机界面交互的原始数据。一共有四种指针事件:
- PointerDownEvent 指针在特定位置与屏幕接触
- PointerMoveEvent 指针从屏幕的一个位置移动到另外一个位置
- PointerUpEvent 指针与屏幕停止接触
- PointerCancelEvent 指针的输入已经不再指向此应用
在指针下落事件中,框架做了一个 hit test 的操作确定与屏幕发生接触的位置上有哪些组件以及分发给最内部的组件去响应。事件会沿着组件树从这个最内部的组件向组件树的根部冒泡分发。并且不存在用于取消或停止指针事件进行进一步分发的机制。
使用