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。 |