Flutter 的手势(GestureDetector)分析详解
2018-11-13 本文已影响176人
AWeiLoveAndroid
今天详细讲解一下Flutter中的GestureDetector。
目录:
一、手势识别器分类
二、手势识别器的相关闭包函数统计分析
三、各种手势识别器的使用详解
四、手势识别器混合使用
五、手势识别器使用时遇到的坑
一、手势识别器分类
GestureDetector手势操作是开发中必不可少的,Flutter中的GestureDetector一共有 7大类25种。
分别是:
Tap:
onTapDown: (details) {}, onTapUp: (details) {}, onTap: () {}, onTapCancel: () {},
双击:
onDoubleTap: () {},
长按:
onLongPress: () {}, onLongPressUp: () {},
垂直滑动:
onVerticalDragDown: (details) {}, onVerticalDragStart: (details) {}, onVerticalDragUpdate: (details) {}, onVerticalDragEnd: (details) {}, onVerticalDragCancel: () {},
水平滑动:
onHorizontalDragDown: (details) {}, onHorizontalDragStart: (details) {}, onHorizontalDragUpdate: (details) {}, onHorizontalDragEnd: (details) {}, onHorizontalDragCancel: () {},
Pan事件:
指针已接触屏幕并可能开始移动。 onPanDown: (details) {}, 指针已经接触屏幕并开始移动。 onPanStart: (details) {}, 与屏幕接触并移动的指针再次移动。 onPanUpdate: (details) {}, 先前与屏幕接触并移动的指针不再与屏幕接触,并且当它停止接触屏幕时以特定速度移动。 onPanEnd: (details) {}, 先前触发 onPanDown 的指针未完成。 onPanCancel: () {},
Scale事件:
onScaleStart: (details) {}, onScaleUpdate: (details) {}, onScaleEnd: (details) {},
二、手势识别器的相关闭包函数统计分析表:
我查看了一下每一个事件类型源码,做了一张图,如下所示: