鸿蒙手势

245 阅读2分钟

手势类型

TapGesture

支持单击、双击和多次点击事件的识别

// count: 识别的连续点击次数
// fingers: 触发点击的手指数
TapGesture(value?: { count?: number, fingers?: number })

// Tap手势识别成功回调。
onAction(event: (event?: GestureEvent) => void)
LongPressGesture

用于触发长按手势事件,触发长按手势的最少手指数为1,最短长按时间为500毫秒

// repeat:是否连续触发事件回调
// duration:触发长按的最短时间
LongPressGesture(value?: { fingers?: number, repeat?: boolean, duration?: number })

// LongPress手势识别成功回调
onAction(event:(event?: GestureEvent) => void)       

// LongPress手势识别成功,手指抬起后触发回调
onActionEnd(event:(event?: GestureEvent) => void) 

// LongPress手势识别成功,接收到触摸取消事件触发回调
onActionCancel(event: () => void)                   
PanGesture

用于触发拖动手势事件,滑动的最小距离为5vp时拖动手势识别成功

// direction: 触发拖动的手势方向
// distance: 最小拖动识别距离
PanGesture(value?: { fingers?: number; direction?: PanDirection; distance?: number } | PanGestureOptions)

事件

image.png

PinchGesture

用于触发捏合手势,触发捏合手势的最少手指为2指,最大为5指,最小识别距离为5vp。

PinchGesture(value?: { fingers?: number, distance?: number })

事件

image.png

RotationGesture

用于触发旋转手势事件,触发旋转手势的最少手指为2指,最大为5指,最小改变度数为1度

// angle: 触发旋转手势的最小改变度数
RotationGesture(value?: { fingers?: number, angle?: number })

事件

image.png

SwipeGesture

用于触发滑动事件,滑动速度大于100vp/s时可识别成功

SwipeGesture(value?: { fingers?: number; direction?: SwipeDirection; speed?: number })

// 滑动手势识别成功回调。
onAction(event:(event?: GestureEvent) => void)
GestureGroup

组合手势

// mode: 组合模式
// Sequence: 顺序识别,按照手势的注册顺序识别手势,直到所有手势识别成功。若有一个手势识别失败,后续手势识别均失败。
// Parallel: 并发识别,注册的手势同时识别,直到所有手势识别结束,手势识别互相不影响。
// Exclusive: 互斥识别,注册的手势同时识别,若有一个手势识别成功,则结束手势识别
GestureGroup(mode: GestureMode, ...gesture: GestureType[])

// 顺序组合手势(GestureMode.Sequence)取消后触发回调
onCancel(event: () => void)