• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 手势公共接口
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @jiangtao92-->
5<!--Designer: @piggyguy-->
6<!--Tester: @songyanhong-->
7<!--Adviser: @HelloCrease-->
8
9为开发者提供手势相关的公共接口。
10
11>  **说明:**
12>
13>  本模块首批接口从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14
15## GestureInterface\<T><sup>11+</sup>
16
17定义Gesture接口。
18
19**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
20
21**系统能力:** SystemCapability.ArkUI.ArkUI.Full
22
23### tag<sup>11+</sup>
24
25tag(tag: string): T
26
27设置手势的标志。
28
29**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
30
31**系统能力:** SystemCapability.ArkUI.ArkUI.Full
32
33**参数:**
34
35| 参数名 | 类型                                       | 必填 | 说明                        |
36| ------ | ------------------------------------------ | ---- | ---------------------------- |
37| tag  |  string | 是   | 手势的标志。 |
38
39**返回值:**
40
41| 类型     | 说明        |
42| ------ | --------- |
43| T | 返回当前组件。 |
44
45### allowedTypes<sup>14+</sup>
46
47allowedTypes(types: Array\<SourceTool>): T
48
49设置手势响应的输入类型。
50
51**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
52
53**系统能力:** SystemCapability.ArkUI.ArkUI.Full
54
55**参数:**
56
57| 参数名 | 类型                                       | 必填 | 说明                        |
58| ------ | ------------------------------------------ | ---- | ---------------------------- |
59| types  |  Array\<[SourceTool](ts-gesture-settings.md#sourcetool枚举说明9)> | 是   | 手势响应的输入类型。 |
60
61**返回值:**
62
63| 类型     | 说明        |
64| ------ | --------- |
65| T | 返回当前组件。 |
66
67## ScrollableTargetInfo<sup>12+</sup>
68
69手势识别器对应的滚动类容器组件的信息,继承于[EventTargetInfo](#eventtargetinfo12)。
70
71### isBegin<sup>12+</sup>
72
73isBegin(): boolean
74
75返回当前滚动类容器组件是否在顶部,如果为Swiper组件且在循环模式下返回false。
76
77**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
78
79**系统能力:** SystemCapability.ArkUI.ArkUI.Full
80
81**返回值:**
82
83| 类型     | 说明        |
84| ------ | --------- |
85| boolean | 当前滚动类容器组件是否在顶部。true表示组件在顶部,false表示组件不在顶部。 |
86
87### isEnd<sup>12+</sup>
88
89isEnd(): boolean
90
91返回当前滚动类容器组件是否在底部,如果为Swiper组件且在循环模式下返回false。
92
93**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
94
95**系统能力:** SystemCapability.ArkUI.ArkUI.Full
96
97**返回值:**
98
99| 类型     | 说明        |
100| ------ | --------- |
101| boolean | 当前滚动类容器组件是否在底部。true表示组件在底部,false表示组件不在底部。 |
102
103## EventTargetInfo<sup>12+</sup>
104
105手势识别器对应组件的信息。
106
107### getId<sup>12+</sup>
108
109getId(): string
110
111返回当前组件的组件标识。
112
113**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
114
115**系统能力:** SystemCapability.ArkUI.ArkUI.Full
116
117**返回值:**
118
119| 类型     | 说明        |
120| ------ | --------- |
121| string | 当前组件的[组件标识](./ts-universal-attributes-component-id.md#id)。 |
122
123## TouchRecognizer<sup>20+</sup>
124
125触摸识别器对象。
126
127**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
128
129**系统能力:** SystemCapability.ArkUI.ArkUI.Full
130
131### getEventTargetInfo<sup>20+</sup>
132
133getEventTargetInfo(): EventTargetInfo
134
135返回当前手势识别器对应组件的信息。
136
137**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
138
139**系统能力:** SystemCapability.ArkUI.ArkUI.Full
140
141**返回值:**
142
143| 类型     | 说明        |
144| ------ | --------- |
145| [EventTargetInfo](#eventtargetinfo12) | 当前手势识别器对应组件的信息。 |
146
147### cancelTouch<sup>20+</sup>
148
149cancelTouch(): void
150
151向当前手势识别器发送触摸取消事件的信息。
152
153**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
154
155**系统能力:** SystemCapability.ArkUI.ArkUI.Full
156
157## GestureRecognizer<sup>12+</sup>
158
159手势识别器对象。
160
161### getTag<sup>12+</sup>
162
163getTag(): string
164
165返回当前手势识别器的tag。
166
167**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
168
169**系统能力:** SystemCapability.ArkUI.ArkUI.Full
170
171**返回值:**
172
173| 类型     | 说明        |
174| ------ | --------- |
175| string | 当前手势识别器的标志。 |
176
177### getType<sup>12+</sup>
178
179getType(): GestureControl.GestureType
180
181返回当前手势识别器的类型。
182
183**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
184
185**系统能力:** SystemCapability.ArkUI.ArkUI.Full
186
187**返回值:**
188
189| 类型     | 说明        |
190| ------ | --------- |
191| [GestureControl.GestureType](#gesturetype11) | 当前手势识别器的类型。 |
192
193### isBuiltIn<sup>12+</sup>
194
195isBuiltIn(): boolean
196
197返回当前手势识别器是否为系统内置手势。
198
199**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
200
201**系统能力:** SystemCapability.ArkUI.ArkUI.Full
202
203**返回值:**
204
205| 类型     | 说明        |
206| ------ | --------- |
207| boolean | 当前手势识别器是否为系统内置手势。true表示手势识别器为系统内置手势,false表示非系统内置手势。 |
208
209### setEnabled<sup>12+</sup>
210
211setEnabled(isEnabled: boolean): void
212
213设置当前手势识别器的使能状态。
214
215**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
216
217**系统能力:** SystemCapability.ArkUI.ArkUI.Full
218
219**参数:**
220
221| 参数名     | 类型                           | 必填   | 说明  |
222| ------- | ---------------------------------- | ---- | ----- |
223| isEnabled   | boolean         | 是    | 手势识别器的使能状态。true表示当前手势识别器能够回调应用事件,false表示当前手势识别器不回调应用事件。 |
224
225### isEnabled<sup>12+</sup>
226
227isEnabled(): boolean
228
229返回当前手势识别器的使能状态。
230
231**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
232
233**系统能力:** SystemCapability.ArkUI.ArkUI.Full
234
235**返回值:**
236
237| 类型     | 说明        |
238| ------ | --------- |
239| boolean | 当前手势识别器的使能状态。true表示当前手势识别器能够回调应用事件,false表示当前手势识别器不回调应用事件。 |
240
241### getState<sup>12+</sup>
242
243getState(): GestureRecognizerState
244
245返回当前手势识别器的状态。
246
247**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
248
249**系统能力:** SystemCapability.ArkUI.ArkUI.Full
250
251**返回值:**
252
253| 类型     | 说明        |
254| ------ | --------- |
255| [GestureRecognizerState](#gesturerecognizerstate12) | 当前手势识别器的状态。 |
256
257### getEventTargetInfo<sup>12+</sup>
258
259getEventTargetInfo(): EventTargetInfo
260
261返回当前手势识别器对应组件的信息。
262
263**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
264
265**系统能力:** SystemCapability.ArkUI.ArkUI.Full
266
267**返回值:**
268
269| 类型     | 说明        |
270| ------ | --------- |
271| [EventTargetInfo](#eventtargetinfo12) | 当前手势识别器对应组件的信息。 |
272
273### isValid<sup>12+</sup>
274
275isValid(): boolean;
276
277返回当前手势识别器是否有效。
278
279**系统能力:** SystemCapability.ArkUI.ArkUI.Full
280
281**返回值:**
282
283| 类型     | 说明        |
284| ------ | --------- |
285| boolean | 当前手势识别器是否有效。<br/>当该识别器绑定的组件被析构或该识别器不在响应链上时返回false。<br/>当该识别器绑定的组件未被析构且该识别器在响应链上时返回true。 |
286
287### getFingerCount<sup>18+</sup>
288
289getFingerCount(): number
290
291返回预设手指识别数阈值。
292
293**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
294
295**系统能力:** SystemCapability.ArkUI.ArkUI.Full
296
297**返回值:**
298
299| 类型     | 说明        |
300| ------ | --------- |
301| number | 预设手指识别数阈值。<br/>取值范围:[1, 10], 整数。 |
302
303### isFingerCountLimit<sup>18+</sup>
304
305isFingerCountLimit(): boolean
306
307返回预设手势是否会检测触摸屏幕上手指识别数量。
308
309**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
310
311**系统能力:** SystemCapability.ArkUI.ArkUI.Full
312
313**返回值:**
314
315| 类型     | 说明        |
316| ------ | --------- |
317| boolean | 预设手势是否会检测触摸屏幕上手指识别数量。当绑定手势事件且会检测触摸屏幕上手指的数量时,返回true。当绑定手势事件且不会检测触摸屏幕上手指的数量时,返回false。 |
318
319### preventBegin<sup>20+</sup>
320
321preventBegin(): void
322
323在手指全部抬起前阻止手势识别器参与当前手势识别。如果系统已确定该手势识别器的结果(无论成功与否),调用此接口将无效。此方法与GestureRecognizer.[setEnabled](#setenabled12)(isEnabled: boolean)不同,[setEnabled](#setenabled12)并不会阻止手势识别器对象参与手势识别过程,而只会影响手势对应的回调函数是否执行。
324
325**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
326
327**系统能力:** SystemCapability.ArkUI.ArkUI.Full
328
329## TapRecognizer<sup>18+</sup>
330
331点击手势识别器对象,继承自[GestureRecognizer](#gesturerecognizer12)。
332
333### getTapCount<sup>18+</sup>
334
335getTapCount(): number
336
337返回预设点击手势识别器连续点击次数阈值。
338
339**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
340
341**系统能力:** SystemCapability.ArkUI.ArkUI.Full
342
343**返回值:**
344
345| 类型     | 说明        |
346| ------ | --------- |
347| number | 预设点击手势识别器连续点击次数阈值。<br/>取值范围:[0, +∞) |
348
349## LongPressRecognizer<sup>18+</sup>
350
351长按手势识别器对象,继承于[GestureRecognizer](#gesturerecognizer12)。
352
353### isRepeat<sup>18+</sup>
354
355isRepeat(): boolean
356
357返回预设长按手势识别器是否连续触发事件回调。
358
359**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
360
361**系统能力:** SystemCapability.ArkUI.ArkUI.Full
362
363**返回值:**
364
365| 类型     | 说明        |
366| ------ | --------- |
367| boolean | 预设长按手势识别器是否连续触发事件回调。当绑定长按手势且不会连续触发回调时,返回false。当绑定长按手势且会连续触发回调时,返回true。 |
368
369### getDuration<sup>18+</sup>
370
371getDuration(): number
372
373返回预设长按手势识别器触发长按最短时间阈值。
374
375**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
376
377**系统能力:** SystemCapability.ArkUI.ArkUI.Full
378
379**返回值:**
380
381| 类型     | 说明        |
382| ------ | --------- |
383| number | 返回预设长按手势识别器触发长按最短时间阈值,单位为ms。<br/>取值范围:[0, +∞) |
384
385## SwipeRecognizer<sup>18+</sup>
386
387滑动手势识别器对象,继承于[GestureRecognizer](#gesturerecognizer12)。
388
389### getVelocityThreshold<sup>18+</sup>
390
391getVelocityThreshold(): number
392
393返回预设滑动手势识别器识别滑动最小速度阈值。
394
395**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
396
397**系统能力:** SystemCapability.ArkUI.ArkUI.Full
398
399**返回值:**
400
401| 类型     | 说明        |
402| ------ | --------- |
403| number | 预设滑动手势识别器识别滑动最小速度阈值,单位为vp/s。<br/>取值范围:[0, +∞) |
404
405### getDirection<sup>18+</sup>
406
407getDirection(): SwipeDirection
408
409返回预设滑动手势识别器触发滑动手势滑动方向。
410
411**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
412
413**系统能力:** SystemCapability.ArkUI.ArkUI.Full
414
415**返回值:**
416
417| 类型     | 说明        |
418| ------ | --------- |
419| [SwipeDirection](./ts-basic-gestures-swipegesture.md#swipedirection枚举说明) | 预设滑动手势识别器触发滑动手势滑动方向。 |
420
421## PinchRecognizer<sup>18+</sup>
422
423捏合手势识别器对象,继承于[GestureRecognizer](#gesturerecognizer12)。
424
425### getDistance<sup>18+</sup>
426
427getDistance(): number
428
429返回预设捏合手势识别器最小识别距离阈值。
430
431**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
432
433**系统能力:** SystemCapability.ArkUI.ArkUI.Full
434
435**返回值:**
436
437| 类型     | 说明        |
438| ------ | --------- |
439| number | 预设捏合手势识别器最小识别距离阈值,单位为vp。<br/>取值范围:[0, +∞) |
440
441## RotationRecognizer<sup>18+</sup>
442
443旋转手势识别器对象,继承于[GestureRecognizer](#gesturerecognizer12)。
444
445### getAngle<sup>18+</sup>
446
447getAngle(): number
448
449返回预设旋转手势识别器触发旋转手势最小改变度数阈值。
450
451**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
452
453**系统能力:** SystemCapability.ArkUI.ArkUI.Full
454
455**返回值:**
456
457| 类型     | 说明        |
458| ------ | --------- |
459| number | 预设旋转手势识别器触发旋转手势最小改变度数阈值,单位为deg。<br/>取值范围:[0, +∞)<br/>**说明:** <br/>当输入的改变度数的值小于等于0或大于360时,会被转化为默认值,默认值为1。 |
460
461## PanRecognizer<sup>12+</sup>
462
463拖动手势识别器对象,继承于[GestureRecognizer](#gesturerecognizer12)。
464
465### getPanGestureOptions<sup>12+</sup>
466
467getPanGestureOptions(): PanGestureOptions
468
469返回当前拖动手势识别器的属性。
470
471**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
472
473**系统能力:** SystemCapability.ArkUI.ArkUI.Full
474
475**返回值:**
476
477| 类型     | 说明        |
478| ------ | --------- |
479| [PanGestureOptions](./ts-basic-gestures-pangesture.md#pangestureoptions) | 当前拖动手势识别器的属性。 |
480
481### getDirection<sup>19+</sup>
482
483getDirection(): PanDirection
484
485返回当前拖动手势识别器的识别方向。
486
487**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
488
489**系统能力:** SystemCapability.ArkUI.ArkUI.Full
490
491**返回值:**
492
493| 类型     | 说明        |
494| ------ | --------- |
495| [PanDirection](./ts-basic-gestures-pangesture.md#pandirection枚举说明) | 当前拖动手势识别器的识别方向。 |
496
497### getDistance<sup>19+</sup>
498
499getDistance(): number
500
501返回当前拖动手势识别器触发的最小滑动距离。
502
503**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
504
505**系统能力:** SystemCapability.ArkUI.ArkUI.Full
506
507**返回值:**
508
509| 类型     | 说明        |
510| ------ | --------- |
511| number | 当前拖动手势识别器触发的最小滑动距离。单位:vp |
512
513### getDistanceMap<sup>19+</sup>
514
515getDistanceMap(): Map\<SourceTool, number\>
516
517返回拖动手势识别器在不同输入源的情况下触发的最小滑动距离。
518
519>  **说明:**
520>
521>  仅支持对通过Pan手势初始化配置修改的设备类型进行阈值查询。对于默认滑动阈值,可通过查询[SourceTool](ts-gesture-settings.md#sourcetool枚举说明9).Unknown类型获取。其他未主动设置的类型则无法获取。
522
523**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
524
525**系统能力:** SystemCapability.ArkUI.ArkUI.Full
526
527**返回值:**
528
529| 类型     | 说明        |
530| ------ | --------- |
531| Map<[SourceTool](ts-gesture-settings.md#sourcetool枚举说明9), number> | 不同输入源的拖动手势识别器触发的最小滑动距离。滑动距离的单位:vp |
532
533## GestureRecognizerState<sup>12+</sup>
534
535定义手势识别器状态。
536
537**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
538
539**系统能力:** SystemCapability.ArkUI.ArkUI.Full
540
541| 名称    | 值   | 说明                           |
542| ------- | ---- | ---------------------------------- |
543| READY | 0    | 准备状态。 |
544| DETECTING    | 1    | 检测状态。 |
545| PENDING    | 2    | 等待状态。 |
546| BLOCKED    | 3    | 阻塞状态。 |
547| SUCCESSFUL    | 4    | 成功状态。 |
548| FAILED    | 5    | 失败状态。 |
549
550## GestureEvent对象说明
551
552定义手势的事件信息。继承自[BaseEvent](ts-gesture-customize-judge.md#baseevent8)。
553
554**系统能力:** SystemCapability.ArkUI.ArkUI.Full
555
556| 名称 | 类型  |   只读  | 可选    |  说明 |
557| -------- | -------- | ---- | ---- |-------- |
558| repeat | boolean | 否 |  否  |是否为重复触发事件,用于LongPressGesture手势触发场景。true表示重复触发事件,false表示非重复触发事件。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
559| offsetX | number | 否 | 否  |手势事件相对于手指按下时的偏移量X,单位为vp,用于PanGesture手势触发场景,从左向右滑动offsetX为正,反之为负。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。<br/>取值范围:(-∞, +∞) |
560| offsetY | number | 否 | 否  |手势事件相对于手指按下时的偏移量Y,单位为vp,用于PanGesture手势触发场景,从上向下滑动offsetY为正,反之为负。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。<br/>取值范围:(-∞, +∞)  |
561| angle | number | 否 | 否  |用于RotationGesture手势触发场景时,表示旋转角度。<br/>用于SwipeGesture手势触发场景时,表示滑动手势的角度,即两根手指间的线段与水平方向的夹角变化的度数。<br/>**说明:**<br/>角度计算方式:滑动手势被识别到后,连接两根手指之间的线被识别为起始线条,随着手指的滑动,手指之间的线条会发生旋转,根据起始线条两端点和当前线条两端点的坐标,使用反正切函数分别计算其相对于水平方向的夹角,最后arctan2(cy2-cy1,cx2-cx1)-arctan2(y2-y1,x2-x1)为旋转的角度。以起始线条为坐标系,顺时针旋转为0到180度,逆时针旋转为-180到0度。<br/>取值范围:[-180,  +180]<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
562| scale | number |否 | 否  |缩放比例,用于PinchGesture手势触发场景。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
563| pinchCenterX | number | 否 | 否  |捏合手势中心点的x轴坐标,单位为vp,用于PinchGesture手势触发场景。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
564| pinchCenterY | number | 否 | 否  |捏合手势中心点的y轴坐标,单位为vp,用于PinchGesture手势触发场景。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
565| speed<sup>8+</sup> | number | 否 | 否  |滑动手势速度,即所有手指相对当前组件元素原始区域滑动的平均速度,单位为vp/s,用于SwipeGesture手势触发场景。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
566| fingerList<sup>8+</sup> | [FingerInfo](./ts-gesture-common.md#fingerinfo8对象说明)[] | 否 | 否  |输入源为触屏产生的手势,fingerList中会包含触发事件的所有触点信息;由鼠标发起的手势,fingerList中只会有一条记录;触摸板的事件大类与鼠标一致,所以由触摸板发起的手势,fingerList只会携带一条记录。<br/>**说明:**<br/>手指索引编号与位置对应,即fingerList[index]的id为index。先按下且未参与当前手势触发的手指在fingerList中对应位置为空。<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
567| fingerInfos<sup>20+</sup> | [FingerInfo](./ts-gesture-common.md#fingerinfo8对象说明)[] | 否 | 是  |由触屏产生的手势,fingerInfos中会包含触发事件的所有触点信息;由鼠标发起的手势,fingerInfos中只会有一条记录;触摸板的事件大类与鼠标一致,所以由触摸板发起的手势,fingerInfos只会携带一条记录。<br/> **说明:**<br/>fingerInfos只会记录参与触摸的有效手指信息,先按下但未参与当前手势触发的手指在fingerInfos中不会显示。默认值为空数组[],返回空数组时,表示当前无有效触点信息。<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。|
568| velocityX<sup>10+</sup> | number | 否 | 否  |用于[PanGesture](ts-basic-gestures-pangesture.md)手势中,获取当前手势的x轴方向速度。坐标轴原点为屏幕左上角,分正负方向速度,从左往右为正,反之为负。单位为vp/s。<br/>取值范围:(-∞,  +∞) <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
569| velocityY<sup>10+</sup> | number | 否 | 否  |用于[PanGesture](ts-basic-gestures-pangesture.md)手势中,获取当前手势的y轴方向速度。坐标轴原点为屏幕左上角,分正负方向速度,从上往下为正,反之为负。单位为vp/s。<br/>取值范围:(-∞,  +∞) <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
570| velocity<sup>10+</sup> | number | 否 | 否  |用于[PanGesture](ts-basic-gestures-pangesture.md)手势中,获取当前手势的主方向速度。为xy轴方向速度的平方和的算术平方根。单位为vp/s。<br/>取值范围:[0,  +∞) <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
571| tapLocation<sup>20+</sup> | [EventLocationInfo](ts-basic-gestures-tapgesture.md#eventlocationinfo20) | 否 | 是  |用于点击手势中,获取当前手势的坐标信息。<br/> **原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。|
572
573## GestureMask<sup>11+</sup>枚举说明
574
575定义是否屏蔽子组件手势。
576
577**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
578
579**系统能力:** SystemCapability.ArkUI.ArkUI.Full
580
581| 名称 |值| 说明 |
582| -------- | ---- |-------- |
583| Normal | - |不屏蔽子组件的手势,按照默认手势识别顺序进行识别。 |
584| IgnoreInternal | - | 屏蔽子组件的手势,包括子组件上系统内置的手势,如子组件为List组件时,内置的滑动手势同样会被屏蔽。 若父子组件区域存在部分重叠,则只会屏蔽父子组件重叠的部分。|
585
586## GestureJudgeResult<sup>12+</sup>
587
588定义手势竞争结果。
589
590**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
591
592**系统能力:** SystemCapability.ArkUI.ArkUI.Full
593
594| 名称  | 值 | 说明                               |
595| ----- | -------- | ----------------------- |
596| CONTINUE  | 0 | 不影响系统手势判定流程。|
597| REJECT  | 1 | 手势判定结果为失败。|
598
599## GestureType<sup>11+</sup>
600
601定义手势类型。
602
603**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
604
605**系统能力:** SystemCapability.ArkUI.ArkUI.Full
606
607| 名称  | 值 | 说明                                   |
608| ----- | -------- | ------------------------------- |
609| TAP_GESTURE   | 0 | 点击手势。|
610| LONG_PRESS_GESTURE  | 1 | 长按手势。|
611| PAN_GESTURE    | 2 | 拖动手势。|
612| PINCH_GESTURE   | 3 | 捏合手势。|
613| SWIPE_GESTURE    | 4 | 滑动手势。|
614| ROTATION_GESTURE   | 5 | 旋转手势。|
615| DRAG    | 6 | 拖拽。|
616| CLICK   | 7 | 点击。|
617
618## GestureInfo<sup>11+</sup>对象说明
619
620手势信息类型。
621
622**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
623
624**系统能力:** SystemCapability.ArkUI.ArkUI.Full
625
626| 名称            | 类型                  | 只读 | 可选 | 说明         |
627| ---------------  | ---------------------|----|------| -----------|
628| tag              | string                | 否 | 是 | 手势标志。<br/>**说明:**<br/>未设置事件标志tag属性时,tag不返回或返回undefined。      |
629| type             | [GestureControl.GestureType](./ts-gesture-common.md#gesturetype11) | 否 | 否 | 手势类型。<br/>**说明:**<br/> 当手势为未暴露类型的系统内置手势事件时,type的值为-1。 |
630| isSystemGesture  | boolean                 | 否 | 否 | 当前手势是否为组件自带手势。true表示是,false表示否。<br/>默认值:false |
631
632## FingerInfo<sup>8+</sup>对象说明
633
634手指信息类型。
635
636**系统能力:** SystemCapability.ArkUI.ArkUI.Full
637
638| 名称 | 类型 | 只读 | 可选| 说明 |
639| -------- | -------- |  -------- |--------- |-------- |
640| id | number | 否  | 否     |手指的索引编号,由按下手指的数量决定,按下一根手指为0,之后每按下1根手指索引编号加一。<br/>**说明:**<br/> 鼠标(索引编号为1001)、手写笔(索引编号为102)、鼠标滚轮(索引编号为0)、触摸板双指滑动(索引编号为0)的索引编号也会被转化为手指的索引编号。<br/>取值范围:[0, 9)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
641| globalX | number | 否  |  否     |相对于应用窗口左上角的x轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
642| globalY | number | 否  |  否     |相对于应用窗口左上角的y轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
643| localX | number | 否  |  否     |相对于当前组件元素原始区域左上角的x轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
644| localY | number | 否  |  否     |相对于当前组件元素原始区域左上角的y轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
645| displayX<sup>12+</sup> | number | 否  | 否     | 相对于屏幕左上角的x轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
646| displayY<sup>12+</sup> | number | 否  |  否     |相对于屏幕左上角的y轴坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 |
647| hand<sup>15+</sup> | [InteractionHand](./ts-appendix-enums.md#interactionhand15) | 否  |  是     |表示事件是由左手点击还是右手点击触发。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。 |
648| globalDisplayX<sup>20+</sup> | number | 否  |  是     |相对于全局屏幕的左上角的X坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 |
649| globalDisplayY<sup>20+</sup> | number | 否  |  是     |相对于全局屏幕的左上角的Y坐标,单位为vp。<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 |
650
651## GestureType<sup>11+</sup>
652
653declare type GestureType = TapGesture | LongPressGesture | PanGesture | PinchGesture | SwipeGesture | RotationGesture | GestureGroup
654
655定义手势类型。取值类型为下表类型中的并集。
656
657**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
658
659**系统能力:** SystemCapability.ArkUI.ArkUI.Full
660
661| 类型 | 说明 |
662| -------- | -------- |
663| [TapGesture](ts-basic-gestures-tapgesture.md) | 点击手势,支持单次点击、多次点击识别。 |
664| [LongPressGesture](ts-basic-gestures-longpressgesture.md) | 长按手势。 |
665| [PanGesture](ts-basic-gestures-pangesture.md) | 平移手势,当滑动的距离达到最小阈值时触发滑动手势事件,默认滑动阈值为5vp。 |
666| [PinchGesture](ts-basic-gestures-pinchgesture.md) | 捏合手势。 |
667| [RotationGesture](ts-basic-gestures-rotationgesture.md) | 旋转手势。 |
668| [SwipeGesture](ts-basic-gestures-swipegesture.md) | 滑动手势,滑动速度大于等于速度阈值时可识别成功,默认最小速度为100vp/s。 |
669| [GestureGroup](ts-combined-gestures.md) | 手势识别组,多种手势组合为复合手势,支持连续识别、并行识别和互斥识别。 |
670
671## BaseGestureEvent<sup>11+</sup>对象说明
672
673基础手势事件类型。继承自[BaseEvent](./ts-gesture-customize-judge.md#baseevent8)。
674
675**系统能力:** SystemCapability.ArkUI.ArkUI.Full
676
677| 名称      | 类型                                  | 只读   |    可选   | 说明        |
678| ---------  | -------------------------------------|-------| -----------|  -----------|
679| fingerList | [FingerInfo[]](./ts-gesture-common.md#fingerinfo8对象说明) | 否 | 否 | 触发事件的所有手指信息。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
680| fingerInfos<sup>20+</sup> | [FingerInfo[]](./ts-gesture-common.md#fingerinfo8对象说明)  | 否 | 是 | 参与触发事件的所有有效触点信息。默认值为空数组[],返回空数组时,表示当前无有效触点信息。<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。|
681
682## TapGestureEvent<sup>11+</sup>对象说明
683
684继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
685
686**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
687
688**系统能力:** SystemCapability.ArkUI.ArkUI.Full
689
690| 名称      | 类型   | 只读 | 可选                                | 说明         |
691| ---------  | --- | ------|-------------------------------  | -----------|
692| tapLocation<sup>20+</sup>  | [EventLocationInfo](ts-basic-gestures-tapgesture.md#eventlocationinfo20)| 否 | 是 | 获取点击手势的坐标信息。 <br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。|
693
694## LongPressGestureEvent<sup>11+</sup>对象说明
695
696继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
697
698**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
699
700**系统能力:** SystemCapability.ArkUI.ArkUI.Full
701
702| 名称      | 类型                               | 只读 | 可选       | 说明         |
703| ---------  | ----------------------------------|-----| ----------|----------|
704| repeat     | boolean                           | 否  | 否    | 是否为重复触发事件。true表示为重复触发事件,false表示非重复触发事件。  |
705
706## PanGestureEvent<sup>11+</sup>对象说明
707
708继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
709
710**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
711
712**系统能力:** SystemCapability.ArkUI.ArkUI.Full
713
714| 名称      | 类型       | 只读    | 可选     | 说明         |
715| ---------  | ---------|-----  | ----------|--------------|
716| offsetX    | number | 否 | 否 | 手势事件x轴相对当前组件元素原始区域的偏移量,单位为vp,从左向右滑动offsetX为正,反之为负。  |
717| offsetY    | number | 否 | 否 | 手势事件y轴相对当前组件元素原始区域的偏移量,单位为vp,从上向下滑动offsetY为正,反之为负。  |
718| velocityX  | number | 否 | 否 | 获取当前手势的x轴方向速度。坐标轴原点为屏幕左上角,分正负方向速度,从左往右为正,反之为负。单位为vp/s。  |
719| velocityY  | number | 否 | 否 | 获取当前手势的y轴方向速度。坐标轴原点为屏幕左上角,分正负方向速度,从上往下为正,反之为负。单位为vp/s。|
720| velocity   | number | 否 | 否 | 获取当前的主方向速度。为xy轴方向速度的平方和的算术平方根。单位为vp/s。  |
721
722## PinchGestureEvent<sup>11+</sup>对象说明
723
724继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
725
726**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
727
728**系统能力:** SystemCapability.ArkUI.ArkUI.Full
729
730| 名称         | 类型     | 只读 | 可选 | 说明         |
731| ------------  | --------|-----------|---------------------  | -----------|
732| scale         | number | 否 | 否 | 缩放比例。  |
733| pinchCenterX  | number | 否 | 否 | 捏合手势中心点相对于当前组件元素原始区域左上角x轴坐标,单位为vp。  |
734| pinchCenterY  | number | 否 | 否 | 捏合手势中心点相对于当前组件元素原始区域左上角y轴坐标,单位为vp。  |
735
736## RotationGestureEvent<sup>11+</sup>对象说明
737
738继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
739
740**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
741
742**系统能力:** SystemCapability.ArkUI.ArkUI.Full
743
744| 名称         | 类型                              |只读 | 可选        | 说明         |
745| ------------  | ---------------------------------|----|--------------| -----------|
746| angle         | number | 否 | 否 |   表示旋转角度,单位为deg。<br/>**说明:**<br/>角度计算方式:当滑动手势被识别后,连接两根手指之间的线被识别为起始线条。随着手指的滑动,手指之间的线条会发生旋转。根据起始线条和当前线条两端点的坐标,使用反正切函数分别计算其相对于水平方向的夹角。<br/>最终的旋转角度为:arctan2(cy2-cy1, cx2-cx1) - arctan2(y2-y1, x2-x1) <br/>在起始线条为坐标系的情况下,顺时针旋转为0到180度,逆时针旋转为-180到0度。  |
747
748## SwipeGestureEvent<sup>11+</sup>对象说明
749
750继承自[BaseGestureEvent](#basegestureevent11对象说明)。可将该对象作为[onGestureJudgeBegin](./ts-gesture-customize-judge.md#ongesturejudgebegin)的event参数来传递。
751
752**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
753
754**系统能力:** SystemCapability.ArkUI.ArkUI.Full
755
756| 名称         | 类型                         | 只读 | 可选             | 说明         |
757| ------------  | ----------------------------|------|------  | -----------|
758| angle         | number | 否 | 否 | 表示滑动手势的角度,即两根手指间的线段与水平方向的夹角变化的度数,单位为deg。<br/>**说明:**<br/>角度计算方式:当滑动手势被识别后,连接两根手指之间的线被识别为起始线条。随着手指的滑动,手指之间的线条会发生旋转。根据起始线条和当前线条两端点的坐标,使用反正切函数分别计算其相对于水平方向的夹角。<br/>最终的旋转角度为:arctan2(cy2-cy1, cx2-cx1) - arctan2(y2-y1, x2-x1) <br/>在起始线条为坐标系的情况下,顺时针旋转为0到180度,逆时针旋转为-180到0度。|
759| speed         | number | 否 | 否 | 滑动手势速度,即所有手指相对当前组件元素原始区域滑动的平均速度,单位为vp/s。  |