# native_gesture.h

#### 概述

提供NativeGesture接口的类型定义。

**引用文件：** <arkui/native\_gesture.h>

**库：** libace\_ndk.z.so

**系统能力：** SystemCapability.ArkUI.ArkUI.Full

**起始版本：** 12

**相关模块：** ArkUI\_NativeModule

#### 汇总

#### 结构体

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| ArkUI_NativeGestureAPI_1 | ArkUI_NativeGestureAPI_1 | 手势模块接口集合。 |
| ArkUI_NativeGestureAPI_2 | - | 定义手势模块接口集合。 |
| ArkUI_GestureRecognizer | ArkUI_GestureRecognizer | 提供手势组件实例对象定义。 |
| ArkUI_GestureInterruptInfo | ArkUI_GestureInterruptInfo | 提供手势打断数据类型对象定义。 |
| ArkUI_GestureEvent | ArkUI_GestureEvent | 提供手势事件数据类型对象定义。 |
| ArkUI_GestureEventTargetInfo | ArkUI_GestureEventTargetInfo | 提供手势事件目标信息类型对象定义。 |
| ArkUI_ParallelInnerGestureEvent | ArkUI_ParallelInnerGestureEvent | 提供并行内置手势事件类型对象定义。 |
| ArkUI_TouchRecognizer | ArkUI_TouchRecognizer | 定义触摸识别器。 |
| ArkUI_TouchRecognizer* | ArkUI_TouchRecognizerHandle | 定义触摸识别器句柄。 |
| ArkUI_TouchRecognizerHandle* | ArkUI_TouchRecognizerHandleArray | 定义触摸识别器句柄数组。 |
| ArkUI_GestureRecognizer* | ArkUI_GestureRecognizerHandle | 提供手势识别器句柄类型对象定义。 |
| ArkUI_GestureRecognizerHandle* | ArkUI_GestureRecognizerHandleArray | 提供手势识别器句柄类型数组对象定义。 |

#### 枚举

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| ArkUI_GestureEventActionType | ArkUI_GestureEventActionType | 定义手势事件类型。 |
| ArkUI_GesturePriority | ArkUI_GesturePriority | 定义手势事件模式。 |
| ArkUI_GroupGestureMode | ArkUI_GroupGestureMode | 定义手势组事件模式。 |
| ArkUI_GestureDirection | ArkUI_GestureDirection | 定义滑动手势方向。 |
| ArkUI_GestureMask | ArkUI_GestureMask | 定义手势屏蔽模式。 |
| ArkUI_GestureRecognizerType | ArkUI_GestureRecognizerType | 定义手势类型。 |
| ArkUI_GestureInterruptResult | ArkUI_GestureInterruptResult | 定义手势打断结果。 |
| ArkUI_GestureRecognizerState | ArkUI_GestureRecognizerState | 定义手势识别器状态。 |
| OH_ArkUI_GestureCollectIntervention | OH_ArkUI_GestureCollectIntervention | 定义手势和事件收集的干预操作类型。 起始版本： 26.0.0 |

#### 函数

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| typedef void (*ArkUI_GestureRecognizerDisposeNotifyCallback)(ArkUI_GestureRecognizer* recognizer, void* userData) | ArkUI_GestureRecognizerDisposeNotifyCallback | 定义手势识别器析构通知事件的回调函数类型。 |
| bool OH_ArkUI_GestureInterruptInfo_GetSystemFlag(const ArkUI_GestureInterruptInfo* event) | - | 判断是否为系统内置手势。 |
| ArkUI_GestureRecognizer* OH_ArkUI_GestureInterruptInfo_GetRecognizer(const ArkUI_GestureInterruptInfo* event) | - | 返回被打断的手势指针。 |
| ArkUI_GestureEvent* OH_ArkUI_GestureInterruptInfo_GetGestureEvent(const ArkUI_GestureInterruptInfo* event) | - | 返回打断的手势事件数据。 |
| int32_t OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType(const ArkUI_GestureInterruptInfo* event) | - | 当要触发的是系统内置手势时，使用该方法可返回该系统内置手势的类型。 |
| int32_t OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers(const ArkUI_GestureInterruptInfo* info,ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size) | - | 从手势打断信息中获取触摸识别器。 |
| ArkUI_NodeHandle OH_ArkUI_TouchRecognizer_GetNodeHandle(const ArkUI_TouchRecognizerHandle recognizer) | - | 获取触摸识别器对应的组件句柄。 |
| int32_t OH_ArkUI_TouchRecognizer_CancelTouch(ArkUI_TouchRecognizerHandle recognizer, ArkUI_GestureInterruptInfo* info) | - | 在手势打断回调中向指定的触摸识别器发送取消触摸的事件 |
| ArkUI_GestureEventActionType OH_ArkUI_GestureEvent_GetActionType(const ArkUI_GestureEvent* event) | - | 返回手势事件类型。 |
| const ArkUI_UIInputEvent* OH_ArkUI_GestureEvent_GetRawInputEvent(const ArkUI_GestureEvent* event) | - | 返回手势输入。 |
| int32_t OH_ArkUI_LongPress_GetRepeatCount(const ArkUI_GestureEvent* event) | - | 返回是否为重复触发事件。 |
| float OH_ArkUI_PanGesture_GetVelocity(const ArkUI_GestureEvent* event) | - | 滑动手势返回手势主方向速度。 |
| float OH_ArkUI_PanGesture_GetVelocityX(const ArkUI_GestureEvent* event) | - | 滑动手势返回当前手势的x轴方向速度。 |
| float OH_ArkUI_PanGesture_GetVelocityY(const ArkUI_GestureEvent* event) | - | 滑动手势返回当前手势的y轴方向速度。 |
| float OH_ArkUI_PanGesture_GetOffsetX(const ArkUI_GestureEvent* event) | - | 滑动手势返回当前手势事件x轴相对偏移量。 |
| float OH_ArkUI_PanGesture_GetOffsetY(const ArkUI_GestureEvent* event) | - | 滑动手势返回当前手势事件y轴相对偏移量。 |
| float OH_ArkUI_SwipeGesture_GetAngle(const ArkUI_GestureEvent* event) | - | 快滑手势返回当前手势事件角度信息，即手指滑动的瞬时方向与水平正方向的夹角。以水平正方向为基准，滑动方向位于水平正方向顺时针侧时，角度范围为0到180度；位于水平正方向逆时针侧时，角度范围为0到-180度。 |
| float OH_ArkUI_SwipeGesture_GetVelocity(const ArkUI_GestureEvent* event) | - | 快滑手势场景中所有手指滑动平均速度。 |
| float OH_ArkUI_RotationGesture_GetAngle(const ArkUI_GestureEvent* event) | - | 旋转手势返回当前手势事件角度信息。 |
| float OH_ArkUI_PinchGesture_GetScale(const ArkUI_GestureEvent* event) | - | 捏合手势返回当前手势事件缩放信息。 |
| float OH_ArkUI_PinchGesture_GetCenterX(const ArkUI_GestureEvent* event) | - | 捏合手势中心点相对于当前组件元素左上角x轴坐标。 |
| float OH_ArkUI_PinchGesture_GetCenterY(const ArkUI_GestureEvent* event) | - | 捏合手势中心点相对于当前组件元素左上角y轴坐标。 |
| ArkUI_NodeHandle OH_ArkUI_GestureEvent_GetNode(const ArkUI_GestureEvent* event) | - | 获取绑定该手势的ARKUI组件 |
| int32_t OH_ArkUI_GetResponseRecognizersFromInterruptInfo(const ArkUI_GestureInterruptInfo* event,ArkUI_GestureRecognizerHandleArray* responseChain, int32_t* count) | - | 获取手势响应链的信息。 |
| int32_t OH_ArkUI_SetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer, bool enabled) | - | 设置手势识别器的使能状态。 |
| int32_t OH_ArkUI_SetGestureRecognizerLimitFingerCount(ArkUI_GestureRecognizer* recognizer, bool limitFingerCount) | - | 设置是否严格检查触摸手指数量的标志。实际触摸手指数量不等于设置的手指数量的时候，该手势识别不成功。 |
| bool OH_ArkUI_GetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer) | - | 获取手势识别器的使能状态。 |
| int32_t OH_ArkUI_GetGestureRecognizerState(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureRecognizerState* state) | - | 获取手势识别器的状态。 |
| int32_t OH_ArkUI_GetGestureEventTargetInfo(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventTargetInfo** info) | - | 获取手势事件目标信息。 |
| int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollBegin(ArkUI_GestureEventTargetInfo* info, bool* ret) | - | 当前滚动类容器组件是否在顶部。 |
| int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollEnd(ArkUI_GestureEventTargetInfo* info, bool* ret) | - | 当前滚动类容器组件是否在底部。 |
| int32_t OH_ArkUI_GetPanGestureDirectionMask(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureDirectionMask* directionMask) | - | 获取滑动手势的滑动方向。 |
| bool OH_ArkUI_IsBuiltInGesture(ArkUI_GestureRecognizer* recognizer) | - | 当前手势是否为系统内置手势。 |
| int32_t OH_ArkUI_GetGestureTag(ArkUI_GestureRecognizer* recognizer, char* buffer, int32_t bufferSize, int32_t* result) | - | 获取手势识别器的标记。 |
| int32_t OH_ArkUI_GetGestureBindNodeId(ArkUI_GestureRecognizer* recognizer, char* nodeId, int32_t size,int32_t* result) | - | 获取手势识别器绑定的组件的ID。 |
| bool OH_ArkUI_IsGestureRecognizerValid(ArkUI_GestureRecognizer* recognizer) | - | 当前手势识别器是否有效。 |
| void* OH_ArkUI_ParallelInnerGestureEvent_GetUserData(ArkUI_ParallelInnerGestureEvent* event) | - | 获取并行内置手势事件中的用户自定义数据。 |
| ArkUI_GestureRecognizer* OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer(ArkUI_ParallelInnerGestureEvent* event) | - | 获取并行内置手势事件中的当前手势识别器。 |
| int32_t OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers(ArkUI_ParallelInnerGestureEvent* event,ArkUI_GestureRecognizerHandleArray* array, int32_t* size) | - | 获取并行内置手势事件中的冲突的手势识别器。 |
| int32_t OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureRecognizerDisposeNotifyCallback callback, void* userData) | - | 设置手势识别器对象析构通知回调函数。 |
| int32_t OH_ArkUI_GetGestureParam_DirectMask(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureDirectionMask* directMask) | - | 获取手势识别器的滑动方向。 |
| int32_t OH_ArkUI_GetGestureParam_FingerCount(ArkUI_GestureRecognizer* recognizer, int* finger) | - | 获取手势识别器的手指数。 |
| int32_t OH_ArkUI_GetGestureParam_limitFingerCount(ArkUI_GestureRecognizer* recognizer, bool* isLimited) | - | 获取手势识别器是否有手指数限制。 |
| int32_t OH_ArkUI_GetGestureParam_repeat(ArkUI_GestureRecognizer* recognizer, bool* isRepeat) | - | 获取手势识别器是否连续触发事件回调。 |
| int32_t OH_ArkUI_GetGestureParam_distance(ArkUI_GestureRecognizer* recognizer, double* distance) | - | 获取手势识别器的手指允许的移动距离范围。 |
| int32_t OH_ArkUI_GetGestureParam_speed(ArkUI_GestureRecognizer* recognizer, double* speed) | - | 获取手势识别器的识别滑动的最小速度。 |
| int32_t OH_ArkUI_GetGestureParam_duration(ArkUI_GestureRecognizer* recognizer, int* duration) | - | 获取手势识别器的触发长按的最短时间。 |
| int32_t OH_ArkUI_GetGestureParam_angle(ArkUI_GestureRecognizer* recognizer, double* angle) | - | 获取手势识别器的旋转手势的最小改变度数。 |
| int32_t OH_ArkUI_GetGestureParam_distanceThreshold(ArkUI_GestureRecognizer* recognizer, double* distanceThreshold) | - | 获取手势识别器的手势移动阈值。 |
| ArkUI_ErrorCode OH_ArkUI_PanGesture_SetDistanceMap(ArkUI_GestureRecognizer* recognizer, int size, int* toolTypeArray, double* distanceArray) | - | 设置手势最小滑动阈值表。 |
| ArkUI_ErrorCode OH_ArkUI_PanGesture_GetDistanceByToolType(ArkUI_GestureRecognizer* recognizer, int toolType, double* distance) | - | 获取手势识别器的手势移动阈值表。仅支持对通过OH_ArkUI_PanGesture_SetDistanceMap修改过的设备类型的阈值查询。默认滑动阈值可通过查询UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN类型获得，其他未设置过的类型不会返回。 |
| ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback(ArkUI_NodeHandle node,void* userData,void (*touchTestDone)(ArkUI_GestureEvent* event,ArkUI_GestureRecognizerHandleArray recognizers,int32_t count,void* userData)) | - | 注册一个在所有手势识别器收集完成后执行的回调函数。当用户开始触摸屏幕时，系统会进行命中测试并根据触摸位置收集手势识别器。随后，在处理任何移动事件之前，组件可以使用此接口确定将参与识别并相互竞争的手势识别器。 |
| void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event) | - | 获取手势中断事件中的用户自定义数据。 |
| ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer) | - | 在手指全部抬起前阻止手势识别器参与当前手势识别。如果系统已确定该手势识别器的结果（无论成功与否），调用此接口将无效。 |
| ArkUI_ErrorCode OH_ArkUI_LongPressGesture_SetAllowableMovement(ArkUI_GestureRecognizer* recognizer, double allowableMovement) | - | 设置长按手势识别器识别的手势的最大移动距离。 |
| ArkUI_ErrorCode OH_ArkUI_LongPressGesture_GetAllowableMovement(ArkUI_GestureRecognizer* recognizer, double* allowableMovement) | - | 获取长按手势识别器识别的手势的最大移动距离。 |
| ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetResponseRecognizers(const ArkUI_GestureCollectInterceptInfo* info, ArkUI_GestureRecognizerHandleArray* array, int32_t* size) | - | 从手势收集拦截信息中获取手势识别器。 起始版本： 26.0.0 |
| ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetTouchRecognizers(const ArkUI_GestureCollectInterceptInfo* info, ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size) | - | 从手势收集拦截信息中获取触摸识别器句柄。 起始版本： 26.0.0 |
| ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_SetGestureCollectIntervention(ArkUI_GestureCollectInterceptInfo* info, OH_ArkUI_GestureCollectIntervention intervention) | - | 设置手势收集干预模式。 起始版本： 26.0.0 |
| ArkUI_ErrorCode OH_ArkUI_GetGestureBindNodeUniqueId(const ArkUI_GestureRecognizer* recognizer, int32_t* uniqueId) | - | 获取与手势识别器绑定的组件唯一ID。 起始版本： 26.0.0 |
| bool OH_ArkUI_TouchRecognizer_IsHostBelongsTo(const ArkUI_TouchRecognizerHandle recognizer, int32_t uniqueId) | - | 检查当前触摸识别器绑定节点是否为传入组件的后代节点。 起始版本： 26.0.0 |
| bool OH_ArkUI_GestureRecognizer_IsHostBelongsTo(const ArkUI_GestureRecognizer* recognizer, int32_t uniqueId) | - | 检查当前手势识别器绑定节点是否为传入组件的后代节点。 起始版本： 26.0.0 |

#### 变量

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| uint32_t | ArkUI_GestureDirectionMask | 定义滑动手势方向集合。 例：ArkUI_GestureDirectionMask directions = GESTURE_DIRECTION_LEFT \| GESTURE_DIRECTION_RIGHT。 directions 表明支持左右水平方向。 |
| uint32_t | ArkUI_GestureEventActionTypeMask | 定义手势事件类型集合。例：ArkUI_GestureEventActionTypeMask actions = GESTURE_EVENT_ACTION_ACCEPT \| GESTURE_EVENT_ACTION_UPDATE。 |

#### 示例

| 名称 | 描述 |
| --- | --- |
| NdkGestureSetting | 从API version 20开始，新增手势绑定、手势移除以及自定义手势判断的示例。 |
| NdkGestureNestScroll | 从API version 20开始，新增手势接口实现嵌套滚动的示例。 |
| NdkGestureBlocking | 从API version 20开始，新增手势拦截的示例。 |

#### 枚举类型说明

#### ArkUI\_GestureEventActionType

```
enum ArkUI_GestureEventActionType
```

**描述：**

定义手势事件类型。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| GESTURE_EVENT_ACTION_ACCEPT = 0x01 | 手势事件触发。 |
| GESTURE_EVENT_ACTION_UPDATE = 0x02 | 手势事件更新。 |
| GESTURE_EVENT_ACTION_END = 0x04 | 手势事件结束。 |
| GESTURE_EVENT_ACTION_CANCEL = 0x08 | 手势事件取消。 |

#### ArkUI\_GesturePriority

```
enum ArkUI_GesturePriority
```

**描述：**

定义手势事件模式。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| NORMAL = 0 | 正常手势。 |
| PRIORITY = 1 | 高优先级手势。 |
| PARALLEL = 2 | 并发手势。 |

#### ArkUI\_GroupGestureMode

```
enum ArkUI_GroupGestureMode
```

**描述：**

定义手势组事件模式。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| SEQUENTIAL_GROUP = 0 | 顺序手势模式，按照注册顺序识别手势，直到所有手势识别成功。若有识别失败，后续识别均失败。仅有最后一个手势响应结束事件。 |
| PARALLEL_GROUP = 1 | 并发手势模式，注册的手势同时识别，直到所有手势识别结束，手势识别互相不影响。 |
| EXCLUSIVE_GROUP = 2 | 互斥手势模式，注册的手势同时识别，若有一个手势识别成功，则结束手势识别。 |

#### ArkUI\_GestureDirection

```
enum ArkUI_GestureDirection
```

**描述：**

定义滑动手势方向。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| GESTURE_DIRECTION_ALL = 0b1111 | 所有方向。 |
| GESTURE_DIRECTION_HORIZONTAL = 0b0011 | 水平方向。 |
| GESTURE_DIRECTION_VERTICAL = 0b1100 | 竖直方向。 |
| GESTURE_DIRECTION_LEFT = 0b0001 | 向左方向。 |
| GESTURE_DIRECTION_RIGHT = 0b0010 | 向右方向。 |
| GESTURE_DIRECTION_UP = 0b0100 | 向上方向。 |
| GESTURE_DIRECTION_DOWN = 0b1000 | 向下方向。 |
| GESTURE_DIRECTION_NONE = 0 | 任何方向都不触发手势事件。 |

#### ArkUI\_GestureMask

```
enum ArkUI_GestureMask
```

**描述：**

定义手势屏蔽模式。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| NORMAL_GESTURE_MASK = 0 | 不屏蔽子组件的手势，按照默认手势识别顺序进行识别。 |
| IGNORE_INTERNAL_GESTURE_MASK = 1 | 屏蔽子组件的手势，包括子组件上系统内置的手势。 |

#### ArkUI\_GestureRecognizerType

```
enum ArkUI_GestureRecognizerType
```

**描述：**

定义手势类型。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| TAP_GESTURE = 0 | 敲击手势。 |
| LONG_PRESS_GESTURE = 1 | 长按手势。 |
| PAN_GESTURE = 2 | 滑动手势。 |
| PINCH_GESTURE = 3 | 捏合手势。 |
| ROTATION_GESTURE = 4 | 旋转手势。 |
| SWIPE_GESTURE = 5 | 快滑手势。 |
| GROUP_GESTURE = 6 | 手势组合。 |
| CLICK_GESTURE = 7 | 通过onClick注册的点击手势。 起始版本： 20 |
| DRAG_DROP = 8 | 用于拖放的拖拽手势。 起始版本： 20 |

#### OH\_ArkUI\_GestureCollectIntervention

```
enum OH_ArkUI_GestureCollectIntervention
```

**描述：**

定义手势和事件收集的干预操作类型。

**起始版本：** 26.0.0

| 枚举项 | 描述 |
| --- | --- |
| OH_ARKUI_GESTURE_COLLECT_INTERVENTION_CONTINUE = 0 | 继续正常的手势和事件收集流程。不进行任何干预。 |
| OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_LOWER = 1 | 丢弃所有待收集的低优先级手势和事件。 丢弃的部分包括左侧兄弟节点以及祖先节点（父节点及以上）的手势。 仅保留当前节点和更高优先级节点中已收集的手势。 |
| OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_HIGHER = 2 | 丢弃已经收集到的高优先级手势和事件。 会丢弃已收集的右侧兄弟节点和当前节点上的手势。 将继续处理低优先级手势的收集流程（左侧兄弟节点和祖先节点）。 |
| OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_SELF = 3 | 丢弃当前节点自身的手势和事件。 当前节点的手势和事件将从手势树中排除。 兄弟节点（左侧和右侧）以及祖先节点的手势仍会继续收集。 |
| OH_ARKUI_GESTURE_COLLECT_INTERVENTION_DISCARD_LOWER_PRIORITY_SIBLINGS = 4 | 丢弃左侧兄弟节点中待收集的手势和事件。 当前节点以及已收集的右侧兄弟节点的手势和事件将被保留。 将继续处理父节点以及祖先节点的收集流程。 |

#### ArkUI\_GestureInterruptResult

```
enum ArkUI_GestureInterruptResult
```

**描述：**

定义手势打断结果。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| GESTURE_INTERRUPT_RESULT_CONTINUE = 0 | 手势继续。 |
| GESTURE_INTERRUPT_RESULT_REJECT = 1 | 手势打断。 |

#### ArkUI\_GestureRecognizerState

```
enum ArkUI_GestureRecognizerState
```

**描述：**

定义手势识别器状态。

**起始版本：** 12

| 枚举项 | 描述 |
| --- | --- |
| ARKUI_GESTURE_RECOGNIZER_STATE_READY = 0 | 准备状态。 |
| ARKUI_GESTURE_RECOGNIZER_STATE_DETECTING = 1 | 检测状态。 |
| ARKUI_GESTURE_RECOGNIZER_STATE_PENDING = 2 | 等待状态。 |
| ARKUI_GESTURE_RECOGNIZER_STATE_BLOCKED = 3 | 阻塞状态。 |
| ARKUI_GESTURE_RECOGNIZER_STATE_SUCCESSFUL = 4 | 成功状态。 |
| ARKUI_GESTURE_RECOGNIZER_STATE_FAILED = 5 | 失败状态。 |

#### 函数说明

#### ArkUI\_GestureRecognizerDisposeNotifyCallback()

```
typedef void (*ArkUI_GestureRecognizerDisposeNotifyCallback)(ArkUI_GestureRecognizer* recognizer, void* userData)
```

**描述：**

定义手势识别器析构通知事件的回调函数类型。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| void* userData | 用户自定义数据。 |

#### OH\_ArkUI\_GestureInterruptInfo\_GetSystemFlag()

```
bool OH_ArkUI_GestureInterruptInfo_GetSystemFlag(const ArkUI_GestureInterruptInfo* event)
```

**描述：**

判断是否为系统内置手势。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* event | 手势打断回调事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | true: 系统内置手势； false: 非系统内置手势。 |

#### OH\_ArkUI\_GestureInterruptInfo\_GetRecognizer()

```
ArkUI_GestureRecognizer* OH_ArkUI_GestureInterruptInfo_GetRecognizer(const ArkUI_GestureInterruptInfo* event)
```

**描述：**

返回被打断的手势指针。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* event | 手势打断回调事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_GestureRecognizer* | 被打断的手势指针。 |

#### OH\_ArkUI\_GestureInterruptInfo\_GetGestureEvent()

```
ArkUI_GestureEvent* OH_ArkUI_GestureInterruptInfo_GetGestureEvent(const ArkUI_GestureInterruptInfo* event)
```

**描述：**

返回打断的手势事件数据。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* event | 手势打断回调事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_GestureEvent* | 打断的手势事件数据。 |

#### OH\_ArkUI\_GestureInterruptInfo\_GetSystemRecognizerType()

```
int32_t OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType(const ArkUI_GestureInterruptInfo* event)
```

**描述：**

当要触发的是系统内置手势时，使用该方法可返回该系统内置手势的类型。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* event | 手势打断回调事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 要触发的系统内置手势对应的手势类型，取值由ArkUI_GestureRecognizerType定义。如果当前触发的手势不是系统内置手势，则返回-1。 |

#### OH\_ArkUI\_GestureInterruptInfo\_GetTouchRecognizers()

```
int32_t OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers(const ArkUI_GestureInterruptInfo* info,ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size)
```

**描述：**

从手势打断信息中获取触摸识别器。

**起始版本：** 15

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* info | 指向手势打断信息的指针。 |
| ArkUI_TouchRecognizerHandleArray* recognizers | 指向触摸识别器数组的指针。 |
| int32_t* size | 触摸识别器数组的大小。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 表示成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 表示参数错误。 |

#### OH\_ArkUI\_TouchRecognizer\_GetNodeHandle()

```
ArkUI_NodeHandle OH_ArkUI_TouchRecognizer_GetNodeHandle(const ArkUI_TouchRecognizerHandle recognizer)
```

**描述：**

获取触摸识别器对应的组件句柄。

**起始版本：** 15

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_TouchRecognizerHandle recognizer | 触摸识别器的句柄。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_NodeHandle | 触摸识别器对应的组件句柄。 |

#### OH\_ArkUI\_TouchRecognizer\_CancelTouch()

```
int32_t OH_ArkUI_TouchRecognizer_CancelTouch(ArkUI_TouchRecognizerHandle recognizer, ArkUI_GestureInterruptInfo* info)
```

**描述：**

在手势打断回调中向指定的触摸识别器发送取消触摸的事件

**起始版本：** 15

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TouchRecognizerHandle recognizer | 触摸识别器的句柄。 |
| ArkUI_GestureInterruptInfo* info | 指向手势打断信息的指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_GestureEvent\_GetActionType()

```
ArkUI_GestureEventActionType OH_ArkUI_GestureEvent_GetActionType(const ArkUI_GestureEvent* event)
```

**描述：**

返回手势事件类型。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_GestureEventActionType | 手势事件类型。 |

#### OH\_ArkUI\_GestureEvent\_GetRawInputEvent()

```
const ArkUI_UIInputEvent* OH_ArkUI_GestureEvent_GetRawInputEvent(const ArkUI_GestureEvent* event)
```

**描述：**

返回手势输入。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| const ArkUI_UIInputEvent* | 手势事件的原始输入事件。 |

#### OH\_ArkUI\_LongPress\_GetRepeatCount()

```
int32_t OH_ArkUI_LongPress_GetRepeatCount(const ArkUI_GestureEvent* event)
```

**描述：**

返回是否为重复触发事件。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 是否为重复触发事件。1表示为重复触发事件，0表示为非重复触发事件。 |

#### OH\_ArkUI\_PanGesture\_GetVelocity()

```
float OH_ArkUI_PanGesture_GetVelocity(const ArkUI_GestureEvent* event)
```

**描述：**

滑动手势返回手势主方向速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 当前手势主方向速度，为xy轴方向速度的平方和的算数平方根，单位px/秒。 |

#### OH\_ArkUI\_PanGesture\_GetVelocityX()

```
float OH_ArkUI_PanGesture_GetVelocityX(const ArkUI_GestureEvent* event)
```

**描述：**

滑动手势返回当前手势的x轴方向速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 当前手势的x轴方向速度，单位px/秒。 |

#### OH\_ArkUI\_PanGesture\_GetVelocityY()

```
float OH_ArkUI_PanGesture_GetVelocityY(const ArkUI_GestureEvent* event)
```

**描述：**

滑动手势返回当前手势的y轴方向速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 当前手势的y轴方向速度，单位px/秒。 |

#### OH\_ArkUI\_PanGesture\_GetOffsetX()

```
float OH_ArkUI_PanGesture_GetOffsetX(const ArkUI_GestureEvent* event)
```

**描述：**

滑动手势返回当前手势事件x轴相对偏移量。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 当前手势事件x轴相对偏移量，单位为px。 |

#### OH\_ArkUI\_PanGesture\_GetOffsetY()

```
float OH_ArkUI_PanGesture_GetOffsetY(const ArkUI_GestureEvent* event)
```

**描述：**

滑动手势返回当前手势事件y轴相对偏移量。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 当前手势事件y轴相对偏移量，单位为px。 |

#### OH\_ArkUI\_SwipeGesture\_GetAngle()

```
float OH_ArkUI_SwipeGesture_GetAngle(const ArkUI_GestureEvent* event)
```

**描述：**

快滑手势返回当前手势事件角度信息，即手指滑动的瞬时方向与水平正方向的夹角。以水平正方向为基准，滑动方向位于水平正方向顺时针侧时，角度范围为0到180度；位于水平正方向逆时针侧时，角度范围为0到-180度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 快滑手势的角度，即两根手指间的线段与水平方向的夹角变化的度数。单位为deg。 |

#### OH\_ArkUI\_SwipeGesture\_GetVelocity()

```
float OH_ArkUI_SwipeGesture_GetVelocity(const ArkUI_GestureEvent* event)
```

**描述：**

快滑手势场景中所有手指滑动平均速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 快滑手势速度，即所有手指滑动的平均速度，单位为px/秒。 |

#### OH\_ArkUI\_RotationGesture\_GetAngle()

```
float OH_ArkUI_RotationGesture_GetAngle(const ArkUI_GestureEvent* event)
```

**描述：**

旋转手势返回当前手势事件角度信息。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 旋转角度。单位为deg。 |

#### OH\_ArkUI\_PinchGesture\_GetScale()

```
float OH_ArkUI_PinchGesture_GetScale(const ArkUI_GestureEvent* event)
```

**描述：**

捏合手势返回当前手势事件缩放信息。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 缩放比例。 |

#### OH\_ArkUI\_PinchGesture\_GetCenterX()

```
float OH_ArkUI_PinchGesture_GetCenterX(const ArkUI_GestureEvent* event)
```

**描述：**

捏合手势中心点相对于当前组件元素左上角x轴坐标。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 捏合手势中心点相对于当前组件元素左上角x轴坐标，单位为px。 |

#### OH\_ArkUI\_PinchGesture\_GetCenterY()

```
float OH_ArkUI_PinchGesture_GetCenterY(const ArkUI_GestureEvent* event)
```

**描述：**

捏合手势中心点相对于当前组件元素左上角y轴坐标。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 捏合手势中心点相对于当前组件元素左上角y轴坐标，单位为px。 |

#### OH\_ArkUI\_GestureEvent\_GetNode()

```
ArkUI_NodeHandle OH_ArkUI_GestureEvent_GetNode(const ArkUI_GestureEvent* event)
```

**描述：**

获取绑定该手势的ARKUI组件

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureEvent* event | 手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_NodeHandle | 绑定该手势的ARKUI组件。若返回Null，则表示event是无效值。 |

#### OH\_ArkUI\_GetResponseRecognizersFromInterruptInfo()

```
int32_t OH_ArkUI_GetResponseRecognizersFromInterruptInfo(const ArkUI_GestureInterruptInfo* event,ArkUI_GestureRecognizerHandleArray* responseChain, int32_t* count)
```

**描述：**

获取手势响应链的信息。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureInterruptInfo* event | 手势打断回调事件。 |
| ArkUI_GestureRecognizerHandleArray* responseChain | 响应链组件上的手势识别器。 |
| int32_t* count | 响应链组件上的手势识别器的数量。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_SetGestureRecognizerEnabled()

```
int32_t OH_ArkUI_SetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer, bool enabled)
```

**描述：**

设置手势识别器的使能状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| bool enabled | 使能状态。true表示使能，false表示无法使能。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_SetGestureRecognizerLimitFingerCount()

```
int32_t OH_ArkUI_SetGestureRecognizerLimitFingerCount(ArkUI_GestureRecognizer* recognizer, bool limitFingerCount)
```

**描述：**

设置是否严格检查触摸手指数量的标志。实际触摸手指数量不等于设置的手指数量的时候，该手势识别不成功。

**起始版本：** 15

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| bool limitFingerCount | 表示严格检查触摸手指数量的状态。true表示检查手指数量，false表示不检查手指数量。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_GetGestureRecognizerEnabled()

```
bool OH_ArkUI_GetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer)
```

**描述：**

获取手势识别器的使能状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | true - 使能。 false - 禁用。 |

#### OH\_ArkUI\_GetGestureRecognizerState()

```
int32_t OH_ArkUI_GetGestureRecognizerState(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureRecognizerState* state)
```

**描述：**

获取手势识别器的状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| ArkUI_GestureRecognizerState* state | 手势识别器的状态。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_GetGestureEventTargetInfo()

```
int32_t OH_ArkUI_GetGestureEventTargetInfo(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventTargetInfo** info)
```

**描述：**

获取手势事件目标信息。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| ArkUI_GestureEventTargetInfo** info | 手势事件目标信息。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_GestureEventTargetInfo\_IsScrollBegin()

```
int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollBegin(ArkUI_GestureEventTargetInfo* info, bool* ret)
```

**描述：**

当前滚动类容器组件是否在顶部。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureEventTargetInfo* info | 手势事件目标信息。 |
| bool* ret | 当前滚动类容器组件是否在顶部。true表示在顶部，false表示不在顶部。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER - 非滚动类容器。 |

#### OH\_ArkUI\_GestureEventTargetInfo\_IsScrollEnd()

```
int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollEnd(ArkUI_GestureEventTargetInfo* info, bool* ret)
```

**描述：**

当前滚动类容器组件是否在底部。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureEventTargetInfo* info | 手势事件目标信息。 |
| bool* ret | 当前滚动类容器组件是否在底部。true表示在底部，false表示不在底部。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER - 非滚动类容器。 |

#### OH\_ArkUI\_GetPanGestureDirectionMask()

```
int32_t OH_ArkUI_GetPanGestureDirectionMask(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureDirectionMask* directionMask)
```

**描述：**

获取滑动手势的滑动方向。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| ArkUI_GestureDirectionMask* directionMask | 滑动手势的滑动方向。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_IsBuiltInGesture()

```
bool OH_ArkUI_IsBuiltInGesture(ArkUI_GestureRecognizer* recognizer)
```

**描述：**

当前手势是否为系统内置手势。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | true - 是系统内置手势。 false - 不是系统内置手势。 |

#### OH\_ArkUI\_GetGestureTag()

```
int32_t OH_ArkUI_GetGestureTag(ArkUI_GestureRecognizer* recognizer, char* buffer, int32_t bufferSize, int32_t* result)
```

**描述：**

获取手势识别器的标记。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| char* buffer | 存储区。 |
| int32_t bufferSize | 存储区大小。 |
| int32_t* result | 拷贝的字符串长度。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH - 存储区大小不足。 |

#### OH\_ArkUI\_GetGestureBindNodeId()

```
int32_t OH_ArkUI_GetGestureBindNodeId(ArkUI_GestureRecognizer* recognizer, char* nodeId, int32_t size,int32_t* result)
```

**描述：**

获取手势识别器绑定的组件的ID。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| char* nodeId | 组件的ID。 |
| int32_t size | 存储区大小。 |
| int32_t* result | 拷贝的字符串长度。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH - 存储区大小不足。 |

#### OH\_ArkUI\_IsGestureRecognizerValid()

```
bool OH_ArkUI_IsGestureRecognizerValid(ArkUI_GestureRecognizer* recognizer)
```

**描述：**

当前手势识别器是否有效。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | true - 手势识别器有效。 false - 手势识别器无效。 |

#### OH\_ArkUI\_ParallelInnerGestureEvent\_GetUserData()

```
void* OH_ArkUI_ParallelInnerGestureEvent_GetUserData(ArkUI_ParallelInnerGestureEvent* event)
```

**描述：**

获取并行内置手势事件中的用户自定义数据。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_ParallelInnerGestureEvent* event | 并行内置手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| void* | 用户自定义数据的指针。 |

#### OH\_ArkUI\_ParallelInnerGestureEvent\_GetCurrentRecognizer()

```
ArkUI_GestureRecognizer* OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer(ArkUI_ParallelInnerGestureEvent* event)
```

**描述：**

获取并行内置手势事件中的当前手势识别器。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_ParallelInnerGestureEvent* event | 并行内置手势事件。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_GestureRecognizer* | 当前手势识别器的指针。 |

#### OH\_ArkUI\_ParallelInnerGestureEvent\_GetConflictRecognizers()

```
int32_t OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers(ArkUI_ParallelInnerGestureEvent* event,ArkUI_GestureRecognizerHandleArray* array, int32_t* size)
```

**描述：**

获取并行内置手势事件中的冲突的手势识别器。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_ParallelInnerGestureEvent* event | 并行内置手势事件。 |
| ArkUI_GestureRecognizerHandleArray* array | 冲突的手势识别器数组。 |
| int32_t* size | 冲突的手势识别器数组的大小。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_SetArkUIGestureRecognizerDisposeNotify()

```
int32_t OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureRecognizerDisposeNotifyCallback callback, void* userData)
```

**描述：**

设置手势识别器对象析构通知回调函数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| ArkUI_GestureRecognizerDisposeNotifyCallback callback | 手势识别器对象析构通知回调函数。 |
| void* userData | 用户自定义数据。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR - 成功。 ARKUI_ERROR_CODE_PARAM_INVALID - 参数错误。 |

#### OH\_ArkUI\_GetGestureParam\_DirectMask()

```
int32_t OH_ArkUI_GetGestureParam_DirectMask(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureDirectionMask* directMask)
```

**描述：**

获取手势识别器的滑动方向。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| ArkUI_GestureDirectionMask* directMask | 手势识别器的滑动方向。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_GetGestureParam\_FingerCount()

```
int32_t OH_ArkUI_GetGestureParam_FingerCount(ArkUI_GestureRecognizer* recognizer, int* finger)
```

**描述：**

获取手势识别器的手指数。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| int* finger | 手势识别器的手指数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_GetGestureParam\_limitFingerCount()

```
int32_t OH_ArkUI_GetGestureParam_limitFingerCount(ArkUI_GestureRecognizer* recognizer, bool* isLimited)
```

**描述：**

获取手势识别器是否有手指数限制。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| bool* isLimited | 手势识别器是否有手指数限制。true表示有手指数限制，false表示没有手指数限制。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_GetGestureParam\_repeat()

```
int32_t OH_ArkUI_GetGestureParam_repeat(ArkUI_GestureRecognizer* recognizer, bool* isRepeat)
```

**描述：**

获取手势识别器是否连续触发事件回调。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| bool* isRepeat | 手势识别器是否连续触发事件回调。true表示连续触发，false表示不连续触发。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GetGestureParam\_distance()

```
int32_t OH_ArkUI_GetGestureParam_distance(ArkUI_GestureRecognizer* recognizer, double* distance)
```

**描述：**

获取手势识别器的手指允许的移动距离范围。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double* distance | 手势识别器的手指允许的移动距离范围。单位为px。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GetGestureParam\_speed()

```
int32_t OH_ArkUI_GetGestureParam_speed(ArkUI_GestureRecognizer* recognizer, double* speed)
```

**描述：**

获取手势识别器的识别滑动的最小速度。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double* speed | 手势识别器的识别滑动的最小速度。单位为px/s。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GetGestureParam\_duration()

```
int32_t OH_ArkUI_GetGestureParam_duration(ArkUI_GestureRecognizer* recognizer, int* duration)
```

**描述：**

获取手势识别器的触发长按的最短时间。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| int* duration | 手势识别器的触发长按的最短时间。单位为ms。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GetGestureParam\_angle()

```
int32_t OH_ArkUI_GetGestureParam_angle(ArkUI_GestureRecognizer* recognizer, double* angle)
```

**描述：**

获取手势识别器的旋转手势的最小改变度数。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double* angle | 手势识别器的旋转手势的最小改变度数。单位为deg。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GetGestureParam\_distanceThreshold()

```
int32_t OH_ArkUI_GetGestureParam_distanceThreshold(ArkUI_GestureRecognizer* recognizer, double* distanceThreshold)
```

**描述：**

获取手势识别器的手势移动阈值。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double* distanceThreshold | 手势识别器的手势移动阈值。单位：px。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_PanGesture\_SetDistanceMap()

```
ArkUI_ErrorCode OH_ArkUI_PanGesture_SetDistanceMap(ArkUI_GestureRecognizer* recognizer, int size, int* toolTypeArray, double* distanceArray)
```

**描述：**

设置手势最小滑动阈值表。

**起始版本：** 19

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| int size | 手势最小滑动阈值数组的大小。 |
| int* toolTypeArray | 指向输入事件的工具类型数组的指针。当设置UI_INPUT_EVENT_TOOL_TYPE_XXX以外的值时，设置不生效。 |
| double* distanceArray | 指向最小滑动阈值数组的指针。单位为px。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 返回 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_PanGesture\_GetDistanceByToolType()

```
ArkUI_ErrorCode OH_ArkUI_PanGesture_GetDistanceByToolType(ArkUI_GestureRecognizer* recognizer, int toolType, double* distance)
```

**描述：**

获取手势识别器的手势移动阈值表。仅支持对通过OH\_ArkUI\_PanGesture\_SetDistanceMap修改过的设备类型的阈值查询。默认滑动阈值可通过查询UI\_INPUT\_EVENT\_TOOL\_TYPE\_UNKNOWN类型获得，其他未设置过的类型不会返回。

**起始版本：** 19

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| int toolType | 输入事件的工具类型。 |
| double* distance | 手势识别器的手势移动阈值。单位为px。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 返回 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_SetTouchTestDoneCallback()

```
ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback(ArkUI_NodeHandle node, void* userData, void (*touchTestDone)(ArkUI_GestureEvent* event, ArkUI_GestureRecognizerHandleArray recognizers, int32_t count, void* userData))
```

**描述：**

注册一个在所有手势识别器收集完成后执行的回调函数。当用户开始触摸屏幕时，系统会进行命中测试并根据触摸位置收集手势识别器。随后，在处理任何移动事件之前，组件可以使用此接口确定将参与识别并相互竞争的手势识别器。

**起始版本：** 20

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_NodeHandle node | 需要设置手势收集完成回调的节点句柄。 |
| void* userData | 用户自定义数据。 |
| void (*touchTestDone)(ArkUI_GestureEvent* event, ArkUI_GestureRecognizerHandleArray recognizers, int32_t count, void* userData) | 手势收集完成的回调函数。event为手势的基本信息，recognizers为手势识别器数组，count为手势识别器个数，userData为用户自定义数据。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_GestureInterrupter\_GetUserData()

```
void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event)
```

**描述：**

获取手势中断事件中的用户自定义数据。

**起始版本：** 18

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureInterruptInfo* event | 是指向手势中断信息的指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| void* | 返回指向用户自定义数据的指针。 |

#### OH\_ArkUI\_PreventGestureRecognizerBegin()

```
ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer)
```

**描述：**

在手指全部抬起前阻止手势识别器参与当前手势识别。如果系统已确定该手势识别器的结果（无论成功与否），调用此接口将无效。

**起始版本：** 20

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 返回 ARKUI_ERROR_CODE_NO_ERROR 成功。 返回 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 |

#### OH\_ArkUI\_LongPressGesture\_SetAllowableMovement()

```
ArkUI_ErrorCode OH_ArkUI_LongPressGesture_SetAllowableMovement(ArkUI_GestureRecognizer* recognizer, double allowableMovement)
```

**描述：**

设置长按手势识别器识别的手势的最大移动距离。

**起始版本：** 22

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double allowableMovement | 长按手势识别器识别的手势的最大移动距离。 单位为px。 取值范围：(0, +∞)，设置小于等于0时，按照默认值15处理。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_LongPressGesture\_GetAllowableMovement()

```
ArkUI_ErrorCode OH_ArkUI_LongPressGesture_GetAllowableMovement(ArkUI_GestureRecognizer* recognizer, double* allowableMovement)
```

**描述：**

获取长按手势识别器识别的手势的最大移动距离。

**起始版本：** 22

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureRecognizer* recognizer | 手势识别器指针。 |
| double* allowableMovement | 指向长按手势识别器识别的手势的最大移动距离的指针。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 参数错误。 ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED 不支持手势识别器类型。 |

#### OH\_ArkUI\_GestureCollectInterceptInfo\_GetResponseRecognizers()

```
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetResponseRecognizers(const ArkUI_GestureCollectInterceptInfo* info, ArkUI_GestureRecognizerHandleArray* array, int32_t* size)
```

**描述：**

从手势收集拦截信息中获取手势识别器。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureCollectInterceptInfo* info | 表示指向手势收集拦截信息的指针。 |
| ArkUI_GestureRecognizerHandleArray* array | 表示响应手势识别器数组的指针。 |
| int32_t* size | 表示响应手势识别器数组的大小。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 返回ARKUI_ERROR_CODE_NO_ERROR表示成功。 返回ARKUI_ERROR_CODE_PARAM_INVALID表示发生参数异常。 |

#### OH\_ArkUI\_GestureCollectInterceptInfo\_GetTouchRecognizers()

```
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_GetTouchRecognizers(const ArkUI_GestureCollectInterceptInfo* info, ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size)
```

**描述：**

从手势收集拦截信息中获取触摸识别器句柄。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureCollectInterceptInfo* info | 表示指向手势收集拦截信息的指针。 |
| ArkUI_TouchRecognizerHandleArray* recognizers | 表示触摸识别器句柄数组的指针。 |
| int32_t* size | 表示recognizers数组的大小。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 返回ARKUI_ERROR_CODE_NO_ERROR表示成功。 返回ARKUI_ERROR_CODE_PARAM_INVALID表示发生参数异常。 |

#### OH\_ArkUI\_GestureCollectInterceptInfo\_SetGestureCollectIntervention()

```
ArkUI_ErrorCode OH_ArkUI_GestureCollectInterceptInfo_SetGestureCollectIntervention(ArkUI_GestureCollectInterceptInfo* info, OH_ArkUI_GestureCollectIntervention intervention)
```

**描述：**

设置手势收集干预模式。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_GestureCollectInterceptInfo* info | 手势收集拦截信息指针。 |
| OH_ArkUI_GestureCollectIntervention intervention | 手势收集干预模式，类型为OH_ArkUI_GestureCollectIntervention。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 如果成功，则返回ARKUI_ERROR_CODE_NO_ERROR。 参数异常返回ARKUI_ERROR_CODE_PARAM_INVALID。 |

#### OH\_ArkUI\_GetGestureBindNodeUniqueId()

```
ArkUI_ErrorCode OH_ArkUI_GetGestureBindNodeUniqueId(const ArkUI_GestureRecognizer* recognizer, int32_t* uniqueId)
```

**描述：**

获取与手势识别器绑定的组件唯一ID。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureRecognizer* recognizer | 表示指向手势识别器的指针。 |
| int32_t* uniqueId | 表示与手势识别器绑定的组件唯一ID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ErrorCode | 返回ARKUI_ERROR_CODE_NO_ERROR表示成功。 返回ARKUI_ERROR_CODE_PARAM_INVALID表示发生参数异常。 |

#### OH\_ArkUI\_TouchRecognizer\_IsHostBelongsTo()

```
bool OH_ArkUI_TouchRecognizer_IsHostBelongsTo(const ArkUI_TouchRecognizerHandle recognizer, int32_t uniqueId)
```

**描述：**

检查当前触摸识别器绑定节点是否为传入组件的后代节点。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_TouchRecognizerHandle recognizer | 表示触摸识别器句柄。 |
| int32_t uniqueId | 表示组件的唯一ID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | 如果当前触摸识别器绑定节点是传入组件的后代，则返回true，否则返回false。 |

#### OH\_ArkUI\_GestureRecognizer\_IsHostBelongsTo()

```
bool OH_ArkUI_GestureRecognizer_IsHostBelongsTo(const ArkUI_GestureRecognizer* recognizer, int32_t uniqueId)
```

**描述：**

检查当前手势识别器绑定节点是否为传入组件的后代节点。

**起始版本：** 26.0.0

**参数：**

| 参数项 | 描述 |
| --- | --- |
| const ArkUI_GestureRecognizer* recognizer | 表示指向手势识别器的指针。 |
| int32_t uniqueId | 表示组件的唯一ID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| bool | 如果当前手势绑定节点是传入组件的后代，则返回true，否则返回false。 |