Flutter之GestureDetector组件
大约 2 分钟
手势识别器组件:
GestureDetector({
Key key, //唯一标识
this.child,//起作用的子组件
this.onTapDown,//触摸屏幕按下(子组件区域)
this.onTapUp,//触摸抬起(子组件区域)
this.onTap,//发生了点击事件,触发顺序是onTapDown->onTapUp->onTap,中断则不触发,事件传递树的最末端
this.onTapCancel,//按下在onTapUp事件发生前,手指离开组件区域触发
this.onDoubleTap,//双击,当设有onTap单击事件时,不响应
this.onLongPress,//长按,当响应长按事件,onTap回调cancel事件
this.onLongPressStart,//长按开始
this.onLongPressEnd,//长按结束
this.onLongPressUp,//长按手抬起
this.onVerticalDragDown,//设置有长按事件或者无拖动抬起,则会回调cancel事件,
this.onVerticalDragStart,//手指触摸屏幕并开始垂直拖动,同时onTap回调cancel事件,onVerticalDrag和onHorizontalDrag只可响应一个,谁先谁占有事件
this.onVerticalDragUpdate,//手指触摸屏幕并垂直拖动中
this.onVerticalDragEnd,//垂直拖动结束
this.onVerticalDragCancel,//垂直拖动事件取消,参考onVerticalDragDown说明
this.onHorizontalDragDown,//设置有长按事件或者无拖动抬起,则会回调cancel事件,
this.onHorizontalDragStart,//手指触摸屏幕并开始水平拖动,同时onTap回调cancel事件,onVerticalDrag和onHorizontalDrag只可响应一个,谁先谁占有事件
this.onHorizontalDragUpdate,//水平拖动中
this.onHorizontalDragEnd,//水平拖动结束
this.onHorizontalDragCancel,//垂直拖动事件取消,参考onHorizontalDragDown说明
// onPan可以取代onVerticalDrag或者onHorizontalDrag,三者不能并存
this.onPanDown,//手指接触屏幕
this.onPanStart,//手指在屏幕上开始移动
this.onPanUpdate,//手指在屏幕上一直移动
this.onPanEnd,//手指离开屏幕
this.onPanCancel,//当设有LongPress事件时,会直接走此事件回调
//手指屏幕按压,需要压力传感器,模拟器无法触发
this.onForcePressStart, //手指按压屏幕,当力量达到ForcePressGestureRecognizer.startPressure触发
this.onForcePressPeak,//手指按压屏幕,当力量达到ForcePressGestureRecognizer.peakPressure触发
this.onForcePressUpdate,//手指按压屏幕,按压力量变化时触发
this.onForcePressEnd,//手指离开屏幕
//两指触摸屏幕
this.onSecondaryTapDown,//两指触摸屏幕
this.onSecondaryTapUp,//两指离开屏幕
this.onSecondaryTapCancel, //当设有LongPress事件时,会直接走此事件回调
// onScale可以取代onVerticalDrag或者onHorizontalDrag,三者不能并存,不能与onPan并存,会报错
this.onScaleStart,//缩放拖动
this.onScaleUpdate,//缩放比例变化
this.onScaleEnd,//缩放手指抬起
this.behavior, //点击测试行为规则,有三个值分别是:HitTestBehavior.deferToChild,HitTestBehavior.opaque,HitTestBehavior.translucent,文章后面会介绍
this.excludeFromSemantics = false,//是否排除手势
})