你好,我是陈航。今天,我和你分享的主题是,如何响应用户交互事件。
在前面两篇文章中,我和你一起学习了 Flutter 依赖的包管理机制。在 Flutter 中,包是包含了外部依赖的功能抽象。对于资源和工程代码依赖,我们采用包配置文件 pubspec.yaml 进行统一管理。
通过前面几个章节的学习,我们已经掌握了如何在 Flutter 中通过内部实现和外部依赖去实现自定义 UI,完善业务逻辑。但除了按钮和 ListView 这些动态的组件之外,我们还无法响应用户交互行为。那今天的分享中,我就着重与你讲述 Flutter 是如何监听和响应用户的手势操作的。
手势操作在 Flutter 中分为两类:
第一类是原始的指针事件(Pointer Event),即原生开发中常见的触摸事件,表示屏幕上触摸(或鼠标、手写笔)行为触发的位移行为;
第二类则是手势识别(Gesture Detector),表示多个原始指针事件的组合操作,如点击、双击、长按等,是指针事件的语义化封装。
接下来,我们先看一下原始的指针事件。
指针事件
指针事件表示用户交互的原始触摸数据,如手指接触屏幕 PointerDownEvent、手指在屏幕上移动 PointerMoveEvent、手指抬起 PointerUpEvent,以及触摸取消 PointerCancelEvent,这与原生系统的底层触摸事件抽象是一致的。