All in Flutter程序员Flutter

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) {},

二、手势识别器的相关闭包函数统计分析表:

我查看了一下每一个事件类型源码,做了一张图,如下所示:

上一篇下一篇

猜你喜欢

热点阅读