1# native_gesture.h 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @jiangtao92--> 5<!--Designer: @piggyguy--> 6<!--Tester: @songyanhong--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11提供NativeGesture接口的类型定义。 12 13**引用文件:** <arkui/native_gesture.h> 14 15**库:** libace_ndk.z.so 16 17**系统能力:** SystemCapability.ArkUI.ArkUI.Full 18 19**起始版本:** 12 20 21**相关模块:** [ArkUI_NativeModule](capi-arkui-nativemodule.md) 22 23**相关示例:** <!--RP1-->[NdkGestureSetting](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/ArkUISample/NdkGestureSetting)<!--RP1End-->、<!--RP2-->[NdkGestureNestScroll](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/ArkUISample/NdkGestureNestScroll)<!--RP2End--> 24 25## 汇总 26 27### 结构体 28 29| 名称 | typedef关键字 | 描述 | 30|-----------------------------------------------------------------------------------------------|----------------------------------|-------------------| 31| [ArkUI_NativeGestureAPI_1](capi-arkui-nativemodule-arkui-nativegestureapi-1.md) | ArkUI_NativeGestureAPI_1 | 手势模块接口集合。 | 32| [ArkUI_NativeGestureAPI_2](capi-arkui-nativemodule-arkui-nativegestureapi-2.md) | - | 定义手势模块接口集合。 | 33| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md) | ArkUI_GestureRecognizer | 提供手势组件实例对象定义。 | 34| [ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md) | ArkUI_GestureInterruptInfo | 提供手势打断数据类型对象定义。 | 35| [ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md) | ArkUI_GestureEvent | 提供手势事件数据类型对象定义。 | 36| [ArkUI_GestureEventTargetInfo](capi-arkui-nativemodule-arkui-gestureeventtargetinfo.md) | ArkUI_GestureEventTargetInfo | 提供手势事件目标信息类型对象定义。 | 37| [ArkUI_ParallelInnerGestureEvent](capi-arkui-nativemodule-arkui-parallelinnergestureevent.md) | ArkUI_ParallelInnerGestureEvent | 提供并行内部手势事件类型对象定义。 | 38| [ArkUI_TouchRecognizer](capi-arkui-nativemodule-arkui-touchrecognizer.md) | ArkUI_TouchRecognizer | 定义触摸识别器。 | 39| [ArkUI_TouchRecognizerHandle*](capi-arkui-nativemodule-arkui-touchrecognizerhandlearray.md) | ArkUI_TouchRecognizerHandleArray | 定义触摸识别器句柄数组。 | 40| [ArkUI_GestureRecognizerHandle*](capi-arkui-nativemodule-arkui-gesturerecognizerhandle.md) | ArkUI_GestureRecognizerHandleArray | 提供手势识别器句柄类型数组对象定义。 | 41 42### 枚举 43 44| 名称 | typedef关键字 | 描述 | 45| -- | -- | -- | 46| [ArkUI_GestureEventActionType](#arkui_gestureeventactiontype) | ArkUI_GestureEventActionType | 定义手势事件类型。 | 47| [ArkUI_GesturePriority](#arkui_gesturepriority) | ArkUI_GesturePriority | 定义手势事件模式。 | 48| [ArkUI_GroupGestureMode](#arkui_groupgesturemode) | ArkUI_GroupGestureMode | 定义手势组事件模式。 | 49| [ArkUI_GestureDirection](#arkui_gesturedirection) | ArkUI_GestureDirection | 定义滑动手势方向。 | 50| [ArkUI_GestureMask](#arkui_gesturemask) | ArkUI_GestureMask | 定义手势屏蔽模式。 | 51| [ArkUI_GestureRecognizerType](#arkui_gesturerecognizertype) | ArkUI_GestureRecognizerType | 定义手势类型。 | 52| [ArkUI_GestureInterruptResult](#arkui_gestureinterruptresult) | ArkUI_GestureInterruptResult | 定义手势打断结果。 | 53| [ArkUI_GestureRecognizerState](#arkui_gesturerecognizerstate) | ArkUI_GestureRecognizerState | 定义手势识别器状态。 | 54 55### 函数 56 57| 名称 | typedef关键字 | 描述 | 58| -- | -- | -- | 59| [typedef void (\*ArkUI_GestureRecognizerDisposeNotifyCallback)(ArkUI_GestureRecognizer* recognizer, void* userData)](#arkui_gesturerecognizerdisposenotifycallback) | ArkUI_GestureRecognizerDisposeNotifyCallback | 定义手势识别器析构通知事件的回调函数类型。 | 60| [bool OH_ArkUI_GestureInterruptInfo_GetSystemFlag(const ArkUI_GestureInterruptInfo* event)](#oh_arkui_gestureinterruptinfo_getsystemflag) | - | 判断是否组件内置手势。 | 61| [ArkUI_GestureRecognizer* OH_ArkUI_GestureInterruptInfo_GetRecognizer(const ArkUI_GestureInterruptInfo* event)](#oh_arkui_gestureinterruptinfo_getrecognizer) | - | 返回被打断的手势指针。 | 62| [ArkUI_GestureEvent* OH_ArkUI_GestureInterruptInfo_GetGestureEvent(const ArkUI_GestureInterruptInfo* event)](#oh_arkui_gestureinterruptinfo_getgestureevent) | - | 返回打断的手势事件数据。 | 63| [int32_t OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType(const ArkUI_GestureInterruptInfo* event)](#oh_arkui_gestureinterruptinfo_getsystemrecognizertype) | - | 当要触发的是系统内部手势时,使用该方法可返回该系统内部手势的类型。 | 64| [int32_t OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers(const ArkUI_GestureInterruptInfo* info,ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size)](#oh_arkui_gestureinterruptinfo_gettouchrecognizers) | - | 从手势打断信息中获取触摸识别器。 | 65| [ArkUI_NodeHandle OH_ArkUI_TouchRecognizer_GetNodeHandle(const ArkUI_TouchRecognizerHandle recognizer)](#oh_arkui_touchrecognizer_getnodehandle) | - | 获取触摸识别器对应的组件句柄。 | 66| [int32_t OH_ArkUI_TouchRecognizer_CancelTouch(ArkUI_TouchRecognizerHandle recognizer, ArkUI_GestureInterruptInfo* info)](#oh_arkui_touchrecognizer_canceltouch) | - | 在手势打断回调中向指定的触摸识别器发送取消触摸的事件 | 67| [ArkUI_GestureEventActionType OH_ArkUI_GestureEvent_GetActionType(const ArkUI_GestureEvent* event)](#oh_arkui_gestureevent_getactiontype) | - | 返回手势事件类型。 | 68| [const ArkUI_UIInputEvent* OH_ArkUI_GestureEvent_GetRawInputEvent(const ArkUI_GestureEvent* event)](#oh_arkui_gestureevent_getrawinputevent) | - | 返回手势输入。 | 69| [int32_t OH_ArkUI_LongPress_GetRepeatCount(const ArkUI_GestureEvent* event)](#oh_arkui_longpress_getrepeatcount) | - | 返回是否为重复触发事件。 | 70| [float OH_ArkUI_PanGesture_GetVelocity(const ArkUI_GestureEvent* event)](#oh_arkui_pangesture_getvelocity) | - | 滑动手势返回手势主方向速度。 | 71| [float OH_ArkUI_PanGesture_GetVelocityX(const ArkUI_GestureEvent* event)](#oh_arkui_pangesture_getvelocityx) | - | 滑动手势返回当前手势的x轴方向速度。 | 72| [float OH_ArkUI_PanGesture_GetVelocityY(const ArkUI_GestureEvent* event)](#oh_arkui_pangesture_getvelocityy) | - | 滑动手势返回当前手势的y轴方向速度。 | 73| [float OH_ArkUI_PanGesture_GetOffsetX(const ArkUI_GestureEvent* event)](#oh_arkui_pangesture_getoffsetx) | - | 滑动手势返回当前手势事件x轴相对偏移量。 | 74| [float OH_ArkUI_PanGesture_GetOffsetY(const ArkUI_GestureEvent* event)](#oh_arkui_pangesture_getoffsety) | - | 滑动手势返回当前手势事件y轴相对偏移量。 | 75| [float OH_ArkUI_SwipeGesture_GetAngle(const ArkUI_GestureEvent* event)](#oh_arkui_swipegesture_getangle) | - | 滑动手势返回当前手势事件角度信息。角度计算方式:滑动手势被识别到后,连接两根手指之间的线被识别为起始线条,随着手指的滑动,手指之间的线条会发生旋转,<br> 根据起始线条两端点和当前线条两端点的坐标,使用反正切函数分别计算其相对于水平方向的夹角,<br> 最后arctan2(cy2-cy1,cx2-cx1)-arctan2(y2-y1,x2-x1)为旋转的角度。<br> 以起始线条为坐标系,顺时针旋转为0到180度,逆时针旋转为-180到0度。<br> | 76| [float OH_ArkUI_SwipeGesture_GetVelocity(const ArkUI_GestureEvent* event)](#oh_arkui_swipegesture_getvelocity) | - | 滑动手势场景中所有手指滑动平均速度。 | 77| [float OH_ArkUI_RotationGesture_GetAngle(const ArkUI_GestureEvent* event)](#oh_arkui_rotationgesture_getangle) | - | 旋转手势返回当前手势事件角度信息。 | 78| [float OH_ArkUI_PinchGesture_GetScale(const ArkUI_GestureEvent* event)](#oh_arkui_pinchgesture_getscale) | - | 捏合手势返回当前手势事件缩放信息。 | 79| [float OH_ArkUI_PinchGesture_GetCenterX(const ArkUI_GestureEvent* event)](#oh_arkui_pinchgesture_getcenterx) | - | 捏合手势中心点相对于当前组件元素左上角x轴坐标。 | 80| [float OH_ArkUI_PinchGesture_GetCenterY(const ArkUI_GestureEvent* event)](#oh_arkui_pinchgesture_getcentery) | - | 捏合手势中心点相对于当前组件元素左上角y轴坐标。 | 81| [ArkUI_NodeHandle OH_ArkUI_GestureEvent_GetNode(const ArkUI_GestureEvent* event)](#oh_arkui_gestureevent_getnode) | - | 获取绑定该手势的ARKUI组件 | 82| [int32_t OH_ArkUI_GetResponseRecognizersFromInterruptInfo(const ArkUI_GestureInterruptInfo* event,ArkUI_GestureRecognizerHandleArray* responseChain, int32_t* count)](#oh_arkui_getresponserecognizersfrominterruptinfo) | - | 获取手势响应链的信息。 | 83| [int32_t OH_ArkUI_SetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer, bool enabled)](#oh_arkui_setgesturerecognizerenabled) | - | 设置手势识别器的使能状态。 | 84| [int32_t OH_ArkUI_SetGestureRecognizerLimitFingerCount(ArkUI_GestureRecognizer* recognizer, bool limitFingerCount)](#oh_arkui_setgesturerecognizerlimitfingercount) | - | 设置是否严格检查触摸手指数量的标志。实际触摸手指数量不等于设置的手指数量的时候,该手势识别不成功。 | 85| [bool OH_ArkUI_GetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer)](#oh_arkui_getgesturerecognizerenabled) | - | 获取手势识别器的使能状态。 | 86| [int32_t OH_ArkUI_GetGestureRecognizerState(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureRecognizerState* state)](#oh_arkui_getgesturerecognizerstate) | - | 获取手势识别器的状态。 | 87| [int32_t OH_ArkUI_GetGestureEventTargetInfo(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventTargetInfo** info)](#oh_arkui_getgestureeventtargetinfo) | - | 获取手势事件目标信息。 | 88| [int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollBegin(ArkUI_GestureEventTargetInfo* info, bool* ret)](#oh_arkui_gestureeventtargetinfo_isscrollbegin) | - | 当前滚动类容器组件是否在顶部。 | 89| [int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollEnd(ArkUI_GestureEventTargetInfo* info, bool* ret)](#oh_arkui_gestureeventtargetinfo_isscrollend) | - | 当前滚动类容器组件是否在底部。 | 90| [int32_t OH_ArkUI_GetPanGestureDirectionMask(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureDirectionMask* directionMask)](#oh_arkui_getpangesturedirectionmask) | - | 获取滑动手势的滑动方向。 | 91| [bool OH_ArkUI_IsBuiltInGesture(ArkUI_GestureRecognizer* recognizer)](#oh_arkui_isbuiltingesture) | - | 当前手势是否为系统内置手势。 | 92| [int32_t OH_ArkUI_GetGestureTag(ArkUI_GestureRecognizer* recognizer, char* buffer, int32_t bufferSize, int32_t* result)](#oh_arkui_getgesturetag) | - | 获取手势识别器的标记。 | 93| [int32_t OH_ArkUI_GetGestureBindNodeId(ArkUI_GestureRecognizer* recognizer, char* nodeId, int32_t size,int32_t* result)](#oh_arkui_getgesturebindnodeid) | - | 获取手势识别器绑定的组件的ID。 | 94| [bool OH_ArkUI_IsGestureRecognizerValid(ArkUI_GestureRecognizer* recognizer)](#oh_arkui_isgesturerecognizervalid) | - | 当前手势识别器是否有效。 | 95| [void* OH_ArkUI_ParallelInnerGestureEvent_GetUserData(ArkUI_ParallelInnerGestureEvent* event)](#oh_arkui_parallelinnergestureevent_getuserdata) | - | 获取并行内部手势事件中的用户自定义数据。 | 96| [ArkUI_GestureRecognizer* OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer(ArkUI_ParallelInnerGestureEvent* event)](#oh_arkui_parallelinnergestureevent_getcurrentrecognizer) | - | 获取并行内部手势事件中的当前手势识别器。 | 97| [int32_t OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers(ArkUI_ParallelInnerGestureEvent* event,ArkUI_GestureRecognizerHandleArray* array, int32_t* size)](#oh_arkui_parallelinnergestureevent_getconflictrecognizers) | - | 获取并行内部手势事件中的冲突的手势识别器。 | 98| [int32_t OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureRecognizerDisposeNotifyCallback callback, void* userData)](#oh_arkui_setarkuigesturerecognizerdisposenotify) | - | 设置手势识别器对象析构通知回调函数。 | 99| [int32_t OH_ArkUI_GetGestureParam_DirectMask(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureDirectionMask* directMask)](#oh_arkui_getgestureparam_directmask) | - | 获取手势识别器的滑动方向。 | 100| [int32_t OH_ArkUI_GetGestureParam_FingerCount(ArkUI_GestureRecognizer* recognizer, int* finger)](#oh_arkui_getgestureparam_fingercount) | - | 获取手势识别器的手指数。 | 101| [int32_t OH_ArkUI_GetGestureParam_limitFingerCount(ArkUI_GestureRecognizer* recognizer, bool* isLimited)](#oh_arkui_getgestureparam_limitfingercount) | - | 获取手势识别器是否有手指数限制。 | 102| [int32_t OH_ArkUI_GetGestureParam_repeat(ArkUI_GestureRecognizer* recognizer, bool* isRepeat)](#oh_arkui_getgestureparam_repeat) | - | 获取手势识别器是否连续触发事件回调。 | 103| [int32_t OH_ArkUI_GetGestureParam_distance(ArkUI_GestureRecognizer* recognizer, double* distance)](#oh_arkui_getgestureparam_distance) | - | 获取手势识别器的手指允许的移动距离范围。 | 104| [int32_t OH_ArkUI_GetGestureParam_speed(ArkUI_GestureRecognizer* recognizer, double* speed)](#oh_arkui_getgestureparam_speed) | - | 获取手势识别器的识别滑动的最小速度。 | 105| [int32_t OH_ArkUI_GetGestureParam_duration(ArkUI_GestureRecognizer* recognizer, int* duration)](#oh_arkui_getgestureparam_duration) | - | 获取手势识别器的触发长按的最短时间。 | 106| [int32_t OH_ArkUI_GetGestureParam_angle(ArkUI_GestureRecognizer* recognizer, double* angle)](#oh_arkui_getgestureparam_angle) | - | 获取手势识别器的旋转手势的最小改变度数。 | 107| [int32_t OH_ArkUI_GetGestureParam_distanceThreshold(ArkUI_GestureRecognizer* recognizer, double* distanceThreshold)](#oh_arkui_getgestureparam_distancethreshold) | - | 获取手势识别器的手势移动阈值。 | 108| [ArkUI_ErrorCode OH_ArkUI_PanGesture_SetDistanceMap(ArkUI_GestureRecognizer* recognizer, int size, int* toolTypeArray, double* distanceArray)](#oh_arkui_pangesture_setdistancemap) | - | 设置手势最小滑动阈值表。当设备类型为非法值时,设置不生效。 | 109| [ArkUI_ErrorCode OH_ArkUI_PanGesture_GetDistanceByToolType(ArkUI_GestureRecognizer* recognizer, int toolType, double* distance)](#oh_arkui_pangesture_getdistancebytooltype) | - | 获取手势识别器的手势移动阈值表。仅支持对通过OH_ArkUI_PanGesture_SetDistanceMap修改过的设备类型的阈值查询。默认滑动阈值可通过查询UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN类型获得,其他未设置过的类型不会返回。 | 110| [ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback(ArkUI_NodeHandle node,void* userData,void (\*touchTestDone)(ArkUI_GestureEvent* event,ArkUI_GestureRecognizerHandleArray recognizers,int32_t count,void* userData))](#oh_arkui_settouchtestdonecallback) | - | 注册一个在所有手势识别器收集完成后执行的回调函数。当用户开始触摸屏幕时,系统会进行命中测试并根据触摸位置收集手势识别器。随后,在处理任何移动事件之前,组件可以使用此接口确定将参与识别并相互竞争的手势识别器。 | 111| [void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event)](#oh_arkui_gestureinterrupter_getuserdata) | - | 获取手势中断事件中的用户自定义数据。 | 112| [ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer)](#oh_arkui_preventgesturerecognizerbegin) | - | 在手指全部抬起前阻止手势识别器参与当前手势识别。如果系统已确定该手势识别器的结果(无论成功与否),调用此接口将无效。 | 113 114### 变量 115 116| 名称 | typedef关键字 | 描述 | 117|----------|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------| 118| uint32_t | ArkUI_GestureDirectionMask | 定义滑动手势方向集合。<br>例:ArkUI_GestureDirectionMask directions = GESTURE_DIRECTION_LEFT \| GESTURE_DIRECTION_RIGHT。<br>directions 表明支持左右水平方向。 | 119| uint32_t | ArkUI_GestureEventActionTypeMask | 定义手势事件类型集合。例:ArkUI_GestureEventActionTypeMask actions = GESTURE_EVENT_ACTION_ACCEPT \| GESTURE_EVENT_ACTION_UPDATE; | 120 121## 枚举类型说明 122 123### ArkUI_GestureEventActionType 124 125``` 126enum ArkUI_GestureEventActionType 127``` 128 129**描述:** 130 131 132定义手势事件类型。 133 134**起始版本:** 12 135 136| 枚举项 | 描述 | 137| -- | -- | 138| GESTURE_EVENT_ACTION_ACCEPT = 0x01 | 手势事件触发。 | 139| GESTURE_EVENT_ACTION_UPDATE = 0x02 | 手势事件更新。 | 140| GESTURE_EVENT_ACTION_END = 0x04 | 手势事件结束。 | 141| GESTURE_EVENT_ACTION_CANCEL = 0x08 | 手势事件取消。 | 142 143### ArkUI_GesturePriority 144 145``` 146enum ArkUI_GesturePriority 147``` 148 149**描述:** 150 151 152定义手势事件模式。 153 154**起始版本:** 12 155 156| 枚举项 | 描述 | 157| -- | -- | 158| NORMAL = 0 | 正常手势。 | 159| PRIORITY = 1 | 高优先级手势。 | 160| PARALLEL = 2 | 并发手势。 | 161 162### ArkUI_GroupGestureMode 163 164``` 165enum ArkUI_GroupGestureMode 166``` 167 168**描述:** 169 170 171定义手势组事件模式。 172 173**起始版本:** 12 174 175| 枚举项 | 描述 | 176| -- | -- | 177| SEQUENTIAL_GROUP = 0 | 顺序手势模式,按照注册顺序识别手势,直到所有手势识别成功。若有识别失败,后续识别均失败。仅有最后一个手势响应结束事件。 | 178| PARALLEL_GROUP = 1 | 并发手势模式,注册的手势同时识别,直到所有手势识别结束,手势识别互相不影响。 | 179| EXCLUSIVE_GROUP = 2 | 互斥手势模式,注册的手势同时识别,若有一个手势识别成功,则结束手势识别。 | 180 181### ArkUI_GestureDirection 182 183``` 184enum ArkUI_GestureDirection 185``` 186 187**描述:** 188 189 190定义滑动手势方向。 191 192**起始版本:** 12 193 194| 枚举项 | 描述 | 195| -- | -- | 196| GESTURE_DIRECTION_ALL = 0b1111 | 所有方向。 | 197| GESTURE_DIRECTION_HORIZONTAL = 0b0011 | 水平方向。 | 198| GESTURE_DIRECTION_VERTICAL = 0b1100 | 竖直方向。 | 199| GESTURE_DIRECTION_LEFT = 0b0001 | 向左方向。 | 200| GESTURE_DIRECTION_RIGHT = 0b0010 | 向右方向。 | 201| GESTURE_DIRECTION_UP = 0b0100 | 向上方向。 | 202| GESTURE_DIRECTION_DOWN = 0b1000 | 向下方向。 | 203| GESTURE_DIRECTION_NONE = 0 | 任何方向都不触发手势事件。 | 204 205### ArkUI_GestureMask 206 207``` 208enum ArkUI_GestureMask 209``` 210 211**描述:** 212 213 214定义手势屏蔽模式。 215 216**起始版本:** 12 217 218| 枚举项 | 描述 | 219| -- | -- | 220| NORMAL_GESTURE_MASK = 0 | 不屏蔽子组件的手势,按照默认手势识别顺序进行识别。 | 221| IGNORE_INTERNAL_GESTURE_MASK | 屏蔽子组件的手势,包括子组件上系统内置的手势。 | 222 223### ArkUI_GestureRecognizerType 224 225``` 226enum ArkUI_GestureRecognizerType 227``` 228 229**描述:** 230 231 232定义手势类型。 233 234**起始版本:** 12 235 236| 枚举项 | 描述 | 237| -- |-----------------------------------| 238| TAP_GESTURE = 0 | 敲击手势。 | 239| LONG_PRESS_GESTURE | 长按手势。 | 240| PAN_GESTURE | 拖动手势。 | 241| PINCH_GESTURE | 捏合手势。 | 242| ROTATION_GESTURE | 旋转手势。 | 243| SWIPE_GESTURE | 滑动手势。 | 244| GROUP_GESTURE | 手势组合。 | 245| CLICK_GESTURE | 通过onClick注册的点击手势。<br>**起始版本:** 20 | 246| DRAG_DROP | 用于拖放的拖拽手势。<br>**起始版本:** 20 | 247 248### ArkUI_GestureInterruptResult 249 250``` 251enum ArkUI_GestureInterruptResult 252``` 253 254**描述:** 255 256 257定义手势打断结果。 258 259**起始版本:** 12 260 261| 枚举项 | 描述 | 262| -- | -- | 263| GESTURE_INTERRUPT_RESULT_CONTINUE = 0 | 手势继续。 | 264| GESTURE_INTERRUPT_RESULT_REJECT | 手势打断。 | 265 266### ArkUI_GestureRecognizerState 267 268``` 269enum ArkUI_GestureRecognizerState 270``` 271 272**描述:** 273 274 275定义手势识别器状态。 276 277**起始版本:** 12 278 279| 枚举项 | 描述 | 280| -- | -- | 281| ARKUI_GESTURE_RECOGNIZER_STATE_READY = 0 | 准备状态。 | 282| ARKUI_GESTURE_RECOGNIZER_STATE_DETECTING = 1 | 检测状态。 | 283| ARKUI_GESTURE_RECOGNIZER_STATE_PENDING = 2 | 等待状态。 | 284| ARKUI_GESTURE_RECOGNIZER_STATE_BLOCKED = 3 | 阻塞状态。 | 285| ARKUI_GESTURE_RECOGNIZER_STATE_SUCCESSFUL = 4 | 成功状态。 | 286| ARKUI_GESTURE_RECOGNIZER_STATE_FAILED = 5 | 失败状态。 | 287 288 289## 函数说明 290 291### ArkUI_GestureRecognizerDisposeNotifyCallback() 292 293``` 294typedef void (*ArkUI_GestureRecognizerDisposeNotifyCallback)(ArkUI_GestureRecognizer* recognizer, void* userData) 295``` 296 297**描述:** 298 299 300定义手势识别器析构通知事件的回调函数类型。 301 302**起始版本:** 12 303 304 305**参数:** 306 307| 参数项 | 描述 | 308| -- | -- | 309| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 310| void* userData | 用户自定义数据。 | 311 312### OH_ArkUI_GestureInterruptInfo_GetSystemFlag() 313 314``` 315bool OH_ArkUI_GestureInterruptInfo_GetSystemFlag(const ArkUI_GestureInterruptInfo* event) 316``` 317 318**描述:** 319 320 321判断是否组件内置手势。 322 323**起始版本:** 12 324 325 326**参数:** 327 328| 参数项 | 描述 | 329| -- | -- | 330| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 手势打断回调事件。 | 331 332**返回:** 333 334| 类型 | 说明 | 335| -- | -- | 336| bool | true: 系统内置手势;<br> false: 非系统内置手势。 | 337 338### OH_ArkUI_GestureInterruptInfo_GetRecognizer() 339 340``` 341ArkUI_GestureRecognizer* OH_ArkUI_GestureInterruptInfo_GetRecognizer(const ArkUI_GestureInterruptInfo* event) 342``` 343 344**描述:** 345 346 347返回被打断的手势指针。 348 349**起始版本:** 12 350 351 352**参数:** 353 354| 参数项 | 描述 | 355| -- | -- | 356| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 手势打断回调事件。 | 357 358**返回:** 359 360| 类型 | 说明 | 361|------------------------------| -- | 362| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* | 被打断的手势指针。 | 363 364### OH_ArkUI_GestureInterruptInfo_GetGestureEvent() 365 366``` 367ArkUI_GestureEvent* OH_ArkUI_GestureInterruptInfo_GetGestureEvent(const ArkUI_GestureInterruptInfo* event) 368``` 369 370**描述:** 371 372 373返回打断的手势事件数据。 374 375**起始版本:** 12 376 377 378**参数:** 379 380| 参数项 | 描述 | 381| -- | -- | 382| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 手势打断回调事件。 | 383 384**返回:** 385 386| 类型 | 说明 | 387|-------------------------| -- | 388| [ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* | 打断的手势事件数据。 | 389 390### OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType() 391 392``` 393int32_t OH_ArkUI_GestureInterruptInfo_GetSystemRecognizerType(const ArkUI_GestureInterruptInfo* event) 394``` 395 396**描述:** 397 398 399当要触发的是系统内部手势时,使用该方法可返回该系统内部手势的类型。 400 401**起始版本:** 12 402 403 404**参数:** 405 406| 参数项 | 描述 | 407| -- | -- | 408| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 手势打断回调事件。 | 409 410**返回:** 411 412| 类型 | 说明 | 413| -- | -- | 414| int32_t | 要触发的内部手势对应的手势类型,如果当前触发的手势不是系统内部手势,则返回 -1。 | 415 416### OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers() 417 418``` 419int32_t OH_ArkUI_GestureInterruptInfo_GetTouchRecognizers(const ArkUI_GestureInterruptInfo* info,ArkUI_TouchRecognizerHandleArray* recognizers, int32_t* size) 420``` 421 422**描述:** 423 424 425从手势打断信息中获取触摸识别器。 426 427**起始版本:** 15 428 429 430**参数:** 431 432| 参数项 | 描述 | 433|-------------------------------------------------------------------------------------------------| -- | 434| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* info | 指向手势打断信息的指针。 | 435| [ArkUI_TouchRecognizerHandleArray](capi-arkui-nativemodule-arkui-touchrecognizerhandlearray.md)* recognizers | 指向触摸识别器数组的指针。 | 436| int32_t* size | 触摸识别器数组的大小。 | 437 438**返回:** 439 440| 类型 | 说明 | 441| -- | -- | 442| int32_t | 返回 [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 表示成功。<br> 返回 [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 表示参数错误。 | 443 444### OH_ArkUI_TouchRecognizer_GetNodeHandle() 445 446``` 447ArkUI_NodeHandle OH_ArkUI_TouchRecognizer_GetNodeHandle(const ArkUI_TouchRecognizerHandle recognizer) 448``` 449 450**描述:** 451 452 453获取触摸识别器对应的组件句柄。 454 455**起始版本:** 15 456 457 458**参数:** 459 460| 参数项 | 描述 | 461|--------------------------------------------------| -- | 462| const [ArkUI_TouchRecognizerHandle](capi-arkui-nativemodule-arkui-touchrecognizerhandlearray.md) recognizer | 触摸识别器的句柄。 | 463 464**返回:** 465 466| 类型 | 说明 | 467| -- | -- | 468| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) | 触摸识别器对应的组件句柄。 | 469 470### OH_ArkUI_TouchRecognizer_CancelTouch() 471 472``` 473int32_t OH_ArkUI_TouchRecognizer_CancelTouch(ArkUI_TouchRecognizerHandle recognizer, ArkUI_GestureInterruptInfo* info) 474``` 475 476**描述:** 477 478 479在手势打断回调中向指定的触摸识别器发送取消触摸的事件 480 481**起始版本:** 15 482 483 484**参数:** 485 486| 参数项 | 描述 | 487| -- | -- | 488| [ArkUI_TouchRecognizerHandle](capi-arkui-nativemodule-arkui-touchrecognizerhandlearray.md) recognizer | 触摸识别器的句柄。 | 489| [ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* info | 指向手势打断信息的指针。 | 490 491**返回:** 492 493| 类型 | 说明 | 494| -- | -- | 495| int32_t | Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 496 497### OH_ArkUI_GestureEvent_GetActionType() 498 499``` 500ArkUI_GestureEventActionType OH_ArkUI_GestureEvent_GetActionType(const ArkUI_GestureEvent* event) 501``` 502 503**描述:** 504 505 506返回手势事件类型。 507 508**起始版本:** 12 509 510 511**参数:** 512 513| 参数项 | 描述 | 514| -- | -- | 515| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 516 517**返回:** 518 519| 类型 | 说明 | 520| -- | -- | 521| [ArkUI_GestureEventActionType](capi-native-gesture-h.md#arkui_gestureeventactiontype) | 手势事件类型。 | 522 523### OH_ArkUI_GestureEvent_GetRawInputEvent() 524 525``` 526const ArkUI_UIInputEvent* OH_ArkUI_GestureEvent_GetRawInputEvent(const ArkUI_GestureEvent* event) 527``` 528 529**描述:** 530 531 532返回手势输入。 533 534**起始版本:** 12 535 536 537**参数:** 538 539| 参数项 | 描述 | 540| -- | -- | 541| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 542 543**返回:** 544 545| 类型 | 说明 | 546|-------------------------------| -- | 547| const [ArkUI_UIInputEvent](capi-arkui-eventmodule-arkui-uiinputevent.md)* | 手势事件的原始输入事件。 | 548 549### OH_ArkUI_LongPress_GetRepeatCount() 550 551``` 552int32_t OH_ArkUI_LongPress_GetRepeatCount(const ArkUI_GestureEvent* event) 553``` 554 555**描述:** 556 557 558返回是否为重复触发事件。 559 560**起始版本:** 12 561 562 563**参数:** 564 565| 参数项 | 描述 | 566| -- | -- | 567| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 568 569**返回:** 570 571| 类型 | 说明 | 572| -- | -- | 573| int32_t | 是否为重复触发事件。1表示为重复触发事件,0表示为非重复触发事件。 | 574 575### OH_ArkUI_PanGesture_GetVelocity() 576 577``` 578float OH_ArkUI_PanGesture_GetVelocity(const ArkUI_GestureEvent* event) 579``` 580 581**描述:** 582 583 584滑动手势返回手势主方向速度。 585 586**起始版本:** 12 587 588 589**参数:** 590 591| 参数项 | 描述 | 592| -- | -- | 593| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 594 595**返回:** 596 597| 类型 | 说明 | 598| -- | -- | 599| float | 当前手势主方向速度,为xy轴方向速度的平方和的算数平方根,单位px/秒。 | 600 601### OH_ArkUI_PanGesture_GetVelocityX() 602 603``` 604float OH_ArkUI_PanGesture_GetVelocityX(const ArkUI_GestureEvent* event) 605``` 606 607**描述:** 608 609 610滑动手势返回当前手势的x轴方向速度。 611 612**起始版本:** 12 613 614 615**参数:** 616 617| 参数项 | 描述 | 618| -- | -- | 619| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 620 621**返回:** 622 623| 类型 | 说明 | 624| -- | -- | 625| float | 当前手势的x轴方向速度,单位px/秒。 | 626 627### OH_ArkUI_PanGesture_GetVelocityY() 628 629``` 630float OH_ArkUI_PanGesture_GetVelocityY(const ArkUI_GestureEvent* event) 631``` 632 633**描述:** 634 635 636滑动手势返回当前手势的y轴方向速度。 637 638**起始版本:** 12 639 640 641**参数:** 642 643| 参数项 | 描述 | 644| -- | -- | 645| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 646 647**返回:** 648 649| 类型 | 说明 | 650| -- | -- | 651| float | 当前手势的y轴方向速度,单位px/秒。 | 652 653### OH_ArkUI_PanGesture_GetOffsetX() 654 655``` 656float OH_ArkUI_PanGesture_GetOffsetX(const ArkUI_GestureEvent* event) 657``` 658 659**描述:** 660 661 662滑动手势返回当前手势事件x轴相对偏移量。 663 664**起始版本:** 12 665 666 667**参数:** 668 669| 参数项 | 描述 | 670| -- | -- | 671| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 672 673**返回:** 674 675| 类型 | 说明 | 676| -- | -- | 677| float | 当前手势事件x轴相对偏移量,单位为px。 | 678 679### OH_ArkUI_PanGesture_GetOffsetY() 680 681``` 682float OH_ArkUI_PanGesture_GetOffsetY(const ArkUI_GestureEvent* event) 683``` 684 685**描述:** 686 687 688滑动手势返回当前手势事件y轴相对偏移量。 689 690**起始版本:** 12 691 692 693**参数:** 694 695| 参数项 | 描述 | 696| -- | -- | 697| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 698 699**返回:** 700 701| 类型 | 说明 | 702| -- | -- | 703| float | 当前手势事件y轴相对偏移量,单位为px。 | 704 705### OH_ArkUI_SwipeGesture_GetAngle() 706 707``` 708float OH_ArkUI_SwipeGesture_GetAngle(const ArkUI_GestureEvent* event) 709``` 710 711**描述:** 712 713 714滑动手势返回当前手势事件角度信息。角度计算方式:滑动手势被识别到后,连接两根手指之间的线被识别为起始线条,随着手指的滑动,手指之间的线条会发生旋转,<br> 根据起始线条两端点和当前线条两端点的坐标,使用反正切函数分别计算其相对于水平方向的夹角,<br> 最后arctan2(cy2-cy1,cx2-cx1)-arctan2(y2-y1,x2-x1)为旋转的角度。<br> 以起始线条为坐标系,顺时针旋转为0到180度,逆时针旋转为-180到0度。<br> 715 716**起始版本:** 12 717 718 719**参数:** 720 721| 参数项 | 描述 | 722| -- | -- | 723| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 724 725**返回:** 726 727| 类型 | 说明 | 728| -- | -- | 729| float | 滑动手势的角度,即两根手指间的线段与水平方向的夹角变化的度数。单位为deg。| 730 731### OH_ArkUI_SwipeGesture_GetVelocity() 732 733``` 734float OH_ArkUI_SwipeGesture_GetVelocity(const ArkUI_GestureEvent* event) 735``` 736 737**描述:** 738 739 740滑动手势场景中所有手指滑动平均速度。 741 742**起始版本:** 12 743 744 745**参数:** 746 747| 参数项 | 描述 | 748| -- | -- | 749| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 750 751**返回:** 752 753| 类型 | 说明 | 754| -- | -- | 755| float | 滑动手势速度,即所有手指滑动的平均速度,单位为px/秒。 | 756 757### OH_ArkUI_RotationGesture_GetAngle() 758 759``` 760float OH_ArkUI_RotationGesture_GetAngle(const ArkUI_GestureEvent* event) 761``` 762 763**描述:** 764 765 766旋转手势返回当前手势事件角度信息。 767 768**起始版本:** 12 769 770 771**参数:** 772 773| 参数项 | 描述 | 774| -- | -- | 775| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 776 777**返回:** 778 779| 类型 | 说明 | 780| -- | -- | 781| float | 旋转角度。单位为deg。| 782 783### OH_ArkUI_PinchGesture_GetScale() 784 785``` 786float OH_ArkUI_PinchGesture_GetScale(const ArkUI_GestureEvent* event) 787``` 788 789**描述:** 790 791 792捏合手势返回当前手势事件缩放信息。 793 794**起始版本:** 12 795 796 797**参数:** 798 799| 参数项 | 描述 | 800| -- | -- | 801| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 802 803**返回:** 804 805| 类型 | 说明 | 806| -- | -- | 807| float | 缩放比例。 | 808 809### OH_ArkUI_PinchGesture_GetCenterX() 810 811``` 812float OH_ArkUI_PinchGesture_GetCenterX(const ArkUI_GestureEvent* event) 813``` 814 815**描述:** 816 817 818捏合手势中心点相对于当前组件元素左上角x轴坐标。 819 820**起始版本:** 12 821 822 823**参数:** 824 825| 参数项 | 描述 | 826| -- | -- | 827| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 828 829**返回:** 830 831| 类型 | 说明 | 832| -- | -- | 833| float | 捏合手势中心点相对于当前组件元素左上角x轴坐标,单位为px。 | 834 835### OH_ArkUI_PinchGesture_GetCenterY() 836 837``` 838float OH_ArkUI_PinchGesture_GetCenterY(const ArkUI_GestureEvent* event) 839``` 840 841**描述:** 842 843 844捏合手势中心点相对于当前组件元素左上角y轴坐标。 845 846**起始版本:** 12 847 848 849**参数:** 850 851| 参数项 | 描述 | 852| -- | -- | 853| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 854 855**返回:** 856 857| 类型 | 说明 | 858| -- | -- | 859| float | 捏合手势中心点相对于当前组件元素左上角y轴坐标,单位为px。 | 860 861### OH_ArkUI_GestureEvent_GetNode() 862 863``` 864ArkUI_NodeHandle OH_ArkUI_GestureEvent_GetNode(const ArkUI_GestureEvent* event) 865``` 866 867**描述:** 868 869 870获取绑定该手势的ARKUI组件 871 872**起始版本:** 12 873 874 875**参数:** 876 877| 参数项 | 描述 | 878| -- | -- | 879| [const ArkUI_GestureEvent](capi-arkui-nativemodule-arkui-gestureevent.md)* event | 手势事件。 | 880 881**返回:** 882 883| 类型 | 说明 | 884| -- | -- | 885| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) | 绑定该手势的ARKUI组件。若返回Null,则表示event是无效值。 | 886 887### OH_ArkUI_GetResponseRecognizersFromInterruptInfo() 888 889``` 890int32_t OH_ArkUI_GetResponseRecognizersFromInterruptInfo(const ArkUI_GestureInterruptInfo* event,ArkUI_GestureRecognizerHandleArray* responseChain, int32_t* count) 891``` 892 893**描述:** 894 895 896获取手势响应链的信息。 897 898**起始版本:** 12 899 900 901**参数:** 902 903| 参数项 | 描述 | 904| -- | -- | 905| [const ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 手势打断回调事件。 | 906| ArkUI_GestureRecognizerHandleArray* responseChain | 响应链组件上的手势识别器。 | 907| int32_t* count | 响应链组件上的手势识别器的数量。 | 908 909**返回:** 910 911| 类型 | 说明 | 912| -- | -- | 913| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 914 915### OH_ArkUI_SetGestureRecognizerEnabled() 916 917``` 918int32_t OH_ArkUI_SetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer, bool enabled) 919``` 920 921**描述:** 922 923 924设置手势识别器的使能状态。 925 926**起始版本:** 12 927 928 929**参数:** 930 931| 参数项 | 描述 | 932| -- | -- | 933| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 934| bool enabled | 使能状态。true表示使能,false表示无法使能。 | 935 936**返回:** 937 938| 类型 | 说明 | 939| -- | -- | 940| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 941 942### OH_ArkUI_SetGestureRecognizerLimitFingerCount() 943 944``` 945int32_t OH_ArkUI_SetGestureRecognizerLimitFingerCount(ArkUI_GestureRecognizer* recognizer, bool limitFingerCount) 946``` 947 948**描述:** 949 950 951设置是否严格检查触摸手指数量的标志。实际触摸手指数量不等于设置的手指数量的时候,该手势识别不成功。 952 953**起始版本:** 15 954 955 956**参数:** 957 958| 参数项 | 描述 | 959| -- | -- | 960| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 961| bool limitFingerCount | 表示严格检查触摸手指数量的状态。true表示检查手指数量,false表示不检查手指数量。 | 962 963**返回:** 964 965| 类型 | 说明 | 966| -- | -- | 967| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 968 969### OH_ArkUI_GetGestureRecognizerEnabled() 970 971``` 972bool OH_ArkUI_GetGestureRecognizerEnabled(ArkUI_GestureRecognizer* recognizer) 973``` 974 975**描述:** 976 977 978获取手势识别器的使能状态。 979 980**起始版本:** 12 981 982 983**参数:** 984 985| 参数项 | 描述 | 986| -- | -- | 987| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 988 989**返回:** 990 991| 类型 | 说明 | 992| -- | -- | 993| bool | true - 使能。<br> false - 禁用。 | 994 995### OH_ArkUI_GetGestureRecognizerState() 996 997``` 998int32_t OH_ArkUI_GetGestureRecognizerState(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureRecognizerState* state) 999``` 1000 1001**描述:** 1002 1003 1004获取手势识别器的状态。 1005 1006**起始版本:** 12 1007 1008 1009**参数:** 1010 1011| 参数项 | 描述 | 1012| -- | -- | 1013| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1014| [ArkUI_GestureRecognizerState](capi-native-gesture-h.md#arkui_gesturerecognizerstate)* state | 手势识别器的状态。 | 1015 1016**返回:** 1017 1018| 类型 | 说明 | 1019| -- | -- | 1020| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 1021 1022### OH_ArkUI_GetGestureEventTargetInfo() 1023 1024``` 1025int32_t OH_ArkUI_GetGestureEventTargetInfo(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureEventTargetInfo** info) 1026``` 1027 1028**描述:** 1029 1030 1031获取手势事件目标信息。 1032 1033**起始版本:** 12 1034 1035 1036**参数:** 1037 1038| 参数项 | 描述 | 1039| -- | -- | 1040| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1041| [ArkUI_GestureEventTargetInfo](capi-arkui-nativemodule-arkui-gestureeventtargetinfo.md)** info | 手势事件目标信息。 | 1042 1043**返回:** 1044 1045| 类型 | 说明 | 1046| -- | -- | 1047| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 1048 1049### OH_ArkUI_GestureEventTargetInfo_IsScrollBegin() 1050 1051``` 1052int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollBegin(ArkUI_GestureEventTargetInfo* info, bool* ret) 1053``` 1054 1055**描述:** 1056 1057 1058当前滚动类容器组件是否在顶部。 1059 1060**起始版本:** 12 1061 1062 1063**参数:** 1064 1065| 参数项 | 描述 | 1066| -- | -- | 1067| [ArkUI_GestureEventTargetInfo](capi-arkui-nativemodule-arkui-gestureeventtargetinfo.md)* info | 手势事件目标信息。 | 1068| bool* ret | 当前滚动类容器组件是否在顶部。true表示在顶部,false表示不在顶部。| 1069 1070**返回:** 1071 1072| 类型 | 说明 | 1073| -- | -- | 1074| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。<br> [ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER](capi-native-type-h.md#arkui_errorcode) - 非滚动类容器。 | 1075 1076### OH_ArkUI_GestureEventTargetInfo_IsScrollEnd() 1077 1078``` 1079int32_t OH_ArkUI_GestureEventTargetInfo_IsScrollEnd(ArkUI_GestureEventTargetInfo* info, bool* ret) 1080``` 1081 1082**描述:** 1083 1084 1085当前滚动类容器组件是否在底部。 1086 1087**起始版本:** 12 1088 1089 1090**参数:** 1091 1092| 参数项 | 描述 | 1093| -- | -- | 1094| [ArkUI_GestureEventTargetInfo](capi-arkui-nativemodule-arkui-gestureeventtargetinfo.md)* info | 手势事件目标信息。 | 1095| bool* ret | 当前滚动类容器组件是否在底部。true表示在底部,false表示不在底部。 | 1096 1097**返回:** 1098 1099| 类型 | 说明 | 1100| -- | -- | 1101| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。<br> [ARKUI_ERROR_CODE_NON_SCROLLABLE_CONTAINER](capi-native-type-h.md#arkui_errorcode) - 非滚动类容器。 | 1102 1103### OH_ArkUI_GetPanGestureDirectionMask() 1104 1105``` 1106int32_t OH_ArkUI_GetPanGestureDirectionMask(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureDirectionMask* directionMask) 1107``` 1108 1109**描述:** 1110 1111 1112获取滑动手势的滑动方向。 1113 1114**起始版本:** 12 1115 1116 1117**参数:** 1118 1119| 参数项 | 描述 | 1120|-------------------------------------------------------------------------------------------| -- | 1121| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1122| [ArkUI_GestureDirectionMask](#变量)* directionMask | 滑动手势的滑动方向。 | 1123 1124**返回:** 1125 1126| 类型 | 说明 | 1127| -- | -- | 1128| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 1129 1130### OH_ArkUI_IsBuiltInGesture() 1131 1132``` 1133bool OH_ArkUI_IsBuiltInGesture(ArkUI_GestureRecognizer* recognizer) 1134``` 1135 1136**描述:** 1137 1138 1139当前手势是否为系统内置手势。 1140 1141**起始版本:** 12 1142 1143 1144**参数:** 1145 1146| 参数项 | 描述 | 1147| -- | -- | 1148| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1149 1150**返回:** 1151 1152| 类型 | 说明 | 1153| -- | -- | 1154| bool | true - 是系统内置手势。<br> false - 不是系统内置手势。 | 1155 1156### OH_ArkUI_GetGestureTag() 1157 1158``` 1159int32_t OH_ArkUI_GetGestureTag(ArkUI_GestureRecognizer* recognizer, char* buffer, int32_t bufferSize, int32_t* result) 1160``` 1161 1162**描述:** 1163 1164 1165获取手势识别器的标记。 1166 1167**起始版本:** 12 1168 1169 1170**参数:** 1171 1172| 参数项 | 描述 | 1173| -- | -- | 1174| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1175| char* buffer | 存储区。 | 1176| int32_t bufferSize | 存储区大小。 | 1177| int32_t* result | 拷贝的字符串长度。 | 1178 1179**返回:** 1180 1181| 类型 | 说明 | 1182| -- | -- | 1183| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。<br> [ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH](capi-native-type-h.md#arkui_errorcode) - 存储区大小不足。 | 1184 1185### OH_ArkUI_GetGestureBindNodeId() 1186 1187``` 1188int32_t OH_ArkUI_GetGestureBindNodeId(ArkUI_GestureRecognizer* recognizer, char* nodeId, int32_t size,int32_t* result) 1189``` 1190 1191**描述:** 1192 1193 1194获取手势识别器绑定的组件的ID。 1195 1196**起始版本:** 12 1197 1198 1199**参数:** 1200 1201| 参数项 | 描述 | 1202| -- | -- | 1203| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1204| char* nodeId | 组件的ID。 | 1205| int32_t size | 存储区大小。 | 1206| int32_t* result | 拷贝的字符串长度。 | 1207 1208**返回:** 1209 1210| 类型 | 说明 | 1211| -- | -- | 1212| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。<br> [ARKUI_ERROR_CODE_BUFFER_SIZE_NOT_ENOUGH](capi-native-type-h.md#arkui_errorcode) - 存储区大小不足。 | 1213 1214### OH_ArkUI_IsGestureRecognizerValid() 1215 1216``` 1217bool OH_ArkUI_IsGestureRecognizerValid(ArkUI_GestureRecognizer* recognizer) 1218``` 1219 1220**描述:** 1221 1222 1223当前手势识别器是否有效。 1224 1225**起始版本:** 12 1226 1227 1228**参数:** 1229 1230| 参数项 | 描述 | 1231| -- | -- | 1232| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1233 1234**返回:** 1235 1236| 类型 | 说明 | 1237| -- | -- | 1238| bool | true - 手势识别器有效。<br> false - 手势识别器无效。 | 1239 1240### OH_ArkUI_ParallelInnerGestureEvent_GetUserData() 1241 1242``` 1243void* OH_ArkUI_ParallelInnerGestureEvent_GetUserData(ArkUI_ParallelInnerGestureEvent* event) 1244``` 1245 1246**描述:** 1247 1248 1249获取并行内部手势事件中的用户自定义数据。 1250 1251**起始版本:** 12 1252 1253 1254**参数:** 1255 1256| 参数项 | 描述 | 1257| -- | -- | 1258| [ArkUI_ParallelInnerGestureEvent](capi-arkui-nativemodule-arkui-parallelinnergestureevent.md)* event | 并行内部手势事件。 | 1259 1260**返回:** 1261 1262| 类型 | 说明 | 1263| -- | -- | 1264| void* | 用户自定义数据的指针。 | 1265 1266### OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer() 1267 1268``` 1269ArkUI_GestureRecognizer* OH_ArkUI_ParallelInnerGestureEvent_GetCurrentRecognizer(ArkUI_ParallelInnerGestureEvent* event) 1270``` 1271 1272**描述:** 1273 1274 1275获取并行内部手势事件中的当前手势识别器。 1276 1277**起始版本:** 12 1278 1279 1280**参数:** 1281 1282| 参数项 | 描述 | 1283| -- | -- | 1284| [ArkUI_ParallelInnerGestureEvent](capi-arkui-nativemodule-arkui-parallelinnergestureevent.md)* event | 并行内部手势事件。 | 1285 1286**返回:** 1287 1288| 类型 | 说明 | 1289|------------------------------| -- | 1290| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* | 当前手势识别器的指针。 | 1291 1292### OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers() 1293 1294``` 1295int32_t OH_ArkUI_ParallelInnerGestureEvent_GetConflictRecognizers(ArkUI_ParallelInnerGestureEvent* event,ArkUI_GestureRecognizerHandleArray* array, int32_t* size) 1296``` 1297 1298**描述:** 1299 1300 1301获取并行内部手势事件中的冲突的手势识别器。 1302 1303**起始版本:** 12 1304 1305 1306**参数:** 1307 1308| 参数项 | 描述 | 1309|------------------------------------------------------------------------------------------------------| -- | 1310| [ArkUI_ParallelInnerGestureEvent](capi-arkui-nativemodule-arkui-parallelinnergestureevent.md)* event | 并行内部手势事件。 | 1311| [ArkUI_GestureRecognizerHandleArray](capi-arkui-nativemodule-arkui-gesturerecognizerhandle.md)* array | 冲突的手势识别器数组。 | 1312| int32_t* size | 冲突的手势识别器数组的大小。 | 1313 1314**返回:** 1315 1316| 类型 | 说明 | 1317| -- | -- | 1318| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 1319 1320### OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify() 1321 1322``` 1323int32_t OH_ArkUI_SetArkUIGestureRecognizerDisposeNotify(ArkUI_GestureRecognizer* recognizer,ArkUI_GestureRecognizerDisposeNotifyCallback callback, void* userData) 1324``` 1325 1326**描述:** 1327 1328 1329设置手势识别器对象析构通知回调函数。 1330 1331**起始版本:** 12 1332 1333**参数:** 1334 1335| 参数项 | 描述 | 1336| -- | -- | 1337| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1338| [ArkUI_GestureRecognizerDisposeNotifyCallback](capi-native-gesture-h.md#arkui_gesturerecognizerdisposenotifycallback) callback | 手势识别器对象析构通知回调函数。 | 1339| void* userData | 用户自定义数据。 | 1340 1341**返回:** 1342 1343| 类型 | 说明 | 1344| -- | -- | 1345| int32_t | [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) - 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) - 参数错误。 | 1346 1347### OH_ArkUI_GetGestureParam_DirectMask() 1348 1349``` 1350int32_t OH_ArkUI_GetGestureParam_DirectMask(ArkUI_GestureRecognizer* recognizer, ArkUI_GestureDirectionMask* directMask) 1351``` 1352 1353**描述:** 1354 1355 1356获取手势识别器的滑动方向。 1357 1358**起始版本:** 18 1359 1360 1361**参数:** 1362 1363| 参数项 | 描述 | 1364|-------------------------------------------------------------------------------------------| -- | 1365| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1366| [ArkUI_GestureDirectionMask](#变量)* directMask | 手势识别器的滑动方向。 | 1367 1368**返回:** 1369 1370| 类型 | 说明 | 1371| -- | -- | 1372| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 1373 1374### OH_ArkUI_GetGestureParam_FingerCount() 1375 1376``` 1377int32_t OH_ArkUI_GetGestureParam_FingerCount(ArkUI_GestureRecognizer* recognizer, int* finger) 1378``` 1379 1380**描述:** 1381 1382 1383获取手势识别器的手指数。 1384 1385**起始版本:** 18 1386 1387 1388**参数:** 1389 1390| 参数项 | 描述 | 1391| -- | -- | 1392| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1393| int* finger | 手势识别器的手指数。 | 1394 1395**返回:** 1396 1397| 类型 | 说明 | 1398| -- | -- | 1399| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 1400 1401### OH_ArkUI_GetGestureParam_limitFingerCount() 1402 1403``` 1404int32_t OH_ArkUI_GetGestureParam_limitFingerCount(ArkUI_GestureRecognizer* recognizer, bool* isLimited) 1405``` 1406 1407**描述:** 1408 1409 1410获取手势识别器是否有手指数限制。 1411 1412**起始版本:** 18 1413 1414 1415**参数:** 1416 1417| 参数项 | 描述 | 1418| -- | -- | 1419| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1420| bool* isLimited | 手势识别器是否有手指数限制。 | 1421 1422**返回:** 1423 1424| 类型 | 说明 | 1425| -- | -- | 1426| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 1427 1428### OH_ArkUI_GetGestureParam_repeat() 1429 1430``` 1431int32_t OH_ArkUI_GetGestureParam_repeat(ArkUI_GestureRecognizer* recognizer, bool* isRepeat) 1432``` 1433 1434**描述:** 1435 1436 1437获取手势识别器是否连续触发事件回调。 1438 1439**起始版本:** 18 1440 1441 1442**参数:** 1443 1444| 参数项 | 描述 | 1445| -- | -- | 1446| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1447| bool* isRepeat | 手势识别器是否连续触发事件回调。true表示连续触发,false表示不连续触发。| 1448 1449**返回:** 1450 1451| 类型 | 说明 | 1452| -- | -- | 1453| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1454 1455### OH_ArkUI_GetGestureParam_distance() 1456 1457``` 1458int32_t OH_ArkUI_GetGestureParam_distance(ArkUI_GestureRecognizer* recognizer, double* distance) 1459``` 1460 1461**描述:** 1462 1463 1464获取手势识别器的手指允许的移动距离范围。 1465 1466**起始版本:** 18 1467 1468 1469**参数:** 1470 1471| 参数项 | 描述 | 1472| -- | -- | 1473| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1474| double* distance | 手势识别器的手指允许的移动距离范围。单位为px。| 1475 1476**返回:** 1477 1478| 类型 | 说明 | 1479| -- | -- | 1480| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1481 1482### OH_ArkUI_GetGestureParam_speed() 1483 1484``` 1485int32_t OH_ArkUI_GetGestureParam_speed(ArkUI_GestureRecognizer* recognizer, double* speed) 1486``` 1487 1488**描述:** 1489 1490 1491获取手势识别器的识别滑动的最小速度。 1492 1493**起始版本:** 18 1494 1495 1496**参数:** 1497 1498| 参数项 | 描述 | 1499| -- | -- | 1500| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1501| double* speed | 手势识别器的识别滑动的最小速度。单位为px/s。| 1502 1503**返回:** 1504 1505| 类型 | 说明 | 1506| -- | -- | 1507| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1508 1509### OH_ArkUI_GetGestureParam_duration() 1510 1511``` 1512int32_t OH_ArkUI_GetGestureParam_duration(ArkUI_GestureRecognizer* recognizer, int* duration) 1513``` 1514 1515**描述:** 1516 1517 1518获取手势识别器的触发长按的最短时间。 1519 1520**起始版本:** 18 1521 1522 1523**参数:** 1524 1525| 参数项 | 描述 | 1526| -- | -- | 1527| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1528| int* duration | 手势识别器的触发长按的最短时间。单位为ms。| 1529 1530**返回:** 1531 1532| 类型 | 说明 | 1533| -- | -- | 1534| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1535 1536### OH_ArkUI_GetGestureParam_angle() 1537 1538``` 1539int32_t OH_ArkUI_GetGestureParam_angle(ArkUI_GestureRecognizer* recognizer, double* angle) 1540``` 1541 1542**描述:** 1543 1544 1545获取手势识别器的旋转手势的最小改变度数。 1546 1547**起始版本:** 18 1548 1549 1550**参数:** 1551 1552| 参数项 | 描述 | 1553| -- | -- | 1554| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1555| double* angle | 手势识别器的旋转手势的最小改变度数。单位为deg。| 1556 1557**返回:** 1558 1559| 类型 | 说明 | 1560| -- | -- | 1561| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1562 1563### OH_ArkUI_GetGestureParam_distanceThreshold() 1564 1565``` 1566int32_t OH_ArkUI_GetGestureParam_distanceThreshold(ArkUI_GestureRecognizer* recognizer, double* distanceThreshold) 1567``` 1568 1569**描述:** 1570 1571 1572获取手势识别器的手势移动阈值。 1573 1574**起始版本:** 18 1575 1576 1577**参数:** 1578 1579| 参数项 | 描述 | 1580| -- | -- | 1581| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1582| double* distanceThreshold | 手势识别器的手势移动阈值。单位:px。 | 1583 1584**返回:** 1585 1586| 类型 | 说明 | 1587| -- | -- | 1588| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1589 1590### OH_ArkUI_PanGesture_SetDistanceMap() 1591 1592``` 1593ArkUI_ErrorCode OH_ArkUI_PanGesture_SetDistanceMap(ArkUI_GestureRecognizer* recognizer, int size, int* toolTypeArray, double* distanceArray) 1594``` 1595 1596**描述:** 1597 1598 1599设置手势最小滑动阈值表。当设备类型为非法值时,设置不生效。 1600 1601**起始版本:** 19 1602 1603 1604**参数:** 1605 1606| 参数项 | 描述 | 1607| -- | -- | 1608| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1609| int size | 手势最小滑动阈值数组的大小。 | 1610| int* toolTypeArray | 指向输入事件的工具类型数组的指针。 | 1611| double* distanceArray | 指向最小滑动阈值数组的指针。单位为px。 | 1612 1613**返回:** 1614 1615| 类型 | 说明 | 1616| -- | -- | 1617| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。<br> Returns [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1618 1619### OH_ArkUI_PanGesture_GetDistanceByToolType() 1620 1621``` 1622ArkUI_ErrorCode OH_ArkUI_PanGesture_GetDistanceByToolType(ArkUI_GestureRecognizer* recognizer, int toolType, double* distance) 1623``` 1624 1625**描述:** 1626 1627 1628获取手势识别器的手势移动阈值表。仅支持对通过OH_ArkUI_PanGesture_SetDistanceMap修改过的设备类型的阈值查询。默认滑动阈值可通过查询UI_INPUT_EVENT_TOOL_TYPE_UNKNOWN类型获得,其他未设置过的类型不会返回。 1629 1630**起始版本:** 19 1631 1632 1633**参数:** 1634 1635| 参数项 | 描述 | 1636| -- | -- | 1637| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1638| int toolType | 输入事件的工具类型。 | 1639| double* distance | 手势识别器的手势移动阈值。单位为px。 | 1640 1641**返回:** 1642 1643| 类型 | 说明 | 1644| -- | -- | 1645| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。<br> Returns [ARKUI_ERROR_CODE_RECOGNIZER_TYPE_NOT_SUPPORTED](capi-native-type-h.md#arkui_errorcode) 不支持手势识别器类型。 | 1646 1647### OH_ArkUI_SetTouchTestDoneCallback() 1648 1649``` 1650ArkUI_ErrorCode OH_ArkUI_SetTouchTestDoneCallback(ArkUI_NodeHandle node,void* userData,void (*touchTestDone)(ArkUI_GestureEvent* event,ArkUI_GestureRecognizerHandleArray recognizers,int32_t count,void* userData) 1651) 1652``` 1653 1654**描述:** 1655 1656 1657注册一个在所有手势识别器收集完成后执行的回调函数。当用户开始触摸屏幕时,系统会进行命中测试并根据触摸位置收集手势识别器。随后,在处理任何移动事件之前,组件可以使用此接口确定将参与识别并相互竞争的手势识别器。 1658 1659**起始版本:** 20 1660 1661 1662**参数:** 1663 1664| 参数项 | 描述 | 1665|---------------------------| -- | 1666| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 需要设置手势收集完成回调的节点句柄。 | 1667| void* userData | 用户自定义数据。 | 1668| touchTestDone | 手势收集完成的回调函数。- event:手势的基本信息。- recognizers:手势识别器数组。- count:手势识别器个数。 | 1669 1670**返回:** 1671 1672| 类型 | 说明 | 1673|----------------------------------------------------------| -- | 1674| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 1675 1676### OH_ArkUI_GestureInterrupter_GetUserData() 1677 1678``` 1679void* OH_ArkUI_GestureInterrupter_GetUserData(ArkUI_GestureInterruptInfo* event) 1680``` 1681 1682**描述:** 1683 1684 1685获取手势中断事件中的用户自定义数据。 1686 1687**起始版本:** 18 1688 1689 1690**参数:** 1691 1692| 参数项 | 描述 | 1693| -- | -- | 1694| [ArkUI_GestureInterruptInfo](capi-arkui-nativemodule-arkui-gestureinterruptinfo.md)* event | 是指向手势中断信息的指针。 | 1695 1696**返回:** 1697 1698| 类型 | 说明 | 1699| -- | -- | 1700| void* | 返回指向用户自定义数据的指针。 | 1701 1702### OH_ArkUI_PreventGestureRecognizerBegin() 1703 1704``` 1705ArkUI_ErrorCode OH_ArkUI_PreventGestureRecognizerBegin(ArkUI_GestureRecognizer* recognizer) 1706``` 1707 1708**描述:** 1709 1710 1711在手指全部抬起前阻止手势识别器参与当前手势识别。如果系统已确定该手势识别器的结果(无论成功与否),调用此接口将无效。 1712 1713**起始版本:** 20 1714 1715 1716**参数:** 1717 1718| 参数项 | 描述 | 1719| -- | -- | 1720| [ArkUI_GestureRecognizer](capi-arkui-nativemodule-arkui-gesturerecognizer.md)* recognizer | 手势识别器指针。 | 1721 1722**返回:** 1723 1724| 类型 | 说明 | 1725| -- | -- | 1726| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> Returns [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> Returns [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 参数错误。 | 1727 1728 1729