• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# drag_and_drop.h
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @jiangtao92-->
5<!--Designer: @piggyguy-->
6<!--Tester: @songyanhong-->
7<!--Adviser: @HelloCrease-->
8
9## 概述
10
11提供NativeDrag相关接口定义。
12
13**引用文件:** <arkui/drag_and_drop.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## 汇总
24
25### 结构体
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md) | ArkUI_NodeEvent | 组件事件的通用结构类型。 |
30| [ArkUI_Context](capi-arkui-nativemodule-arkui-context.md) | ArkUI_Context | native UI的上下文实例对象。 |
31| [ArkUI_Context*](capi-arkui-nativemodule-arkui-context8h.md) | ArkUI_ContextHandle | native UI的上下文实例对象指针定义。 |
32| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) | ArkUI_DragEvent | 拖拽事件。 |
33| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md) | ArkUI_DragPreviewOption | 设置拖拽跟手图的相关自定义参数。 |
34| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md) | ArkUI_DragAction | 拖拽行为,用于主动发起拖拽。 |
35| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md) | ArkUI_DragAndDropInfo | 主动发起拖拽后,通过拖拽状态监听返回的系统拖拽相关数据。 |
36
37### 枚举
38
39| 名称 | typedef关键字 | 描述 |
40| -- | -- | -- |
41| [ArkUI_DragResult](#arkui_dragresult) | ArkUI_DragResult | 拖拽结果定义,由数据接收方设置,并由系统传递给数据拖出方,拖出方可感知接收方对数据的处理结果。 |
42| [ArkUI_DropOperation](#arkui_dropoperation) | ArkUI_DropOperation | 定义拖拽释放时的数据处理方式,可影响角标的显示。 |
43| [ArkUI_PreDragStatus](#arkui_predragstatus) | ArkUI_PreDragStatus | 定义拖拽发起前的长按交互阶段的变化状态。 |
44| [ArkUI_DragPreviewScaleMode](#arkui_dragpreviewscalemode) | ArkUI_DragPreviewScaleMode | 拖拽预览缩放模式。 |
45| [ArkUI_DragStatus](#arkui_dragstatus) | ArkUI_DragStatus | 拖拽状态。 |
46
47### 函数
48
49| 名称 | 描述 |
50| -- | -- |
51| [ArkUI_DragEvent* OH_ArkUI_NodeEvent_GetDragEvent(ArkUI_NodeEvent* nodeEvent)](#oh_arkui_nodeevent_getdragevent) | 从 NodeEvent 中获取DragEvent。 |
52| [ArkUI_PreDragStatus OH_ArkUI_NodeEvent_GetPreDragStatus(ArkUI_NodeEvent* nodeEvent)](#oh_arkui_nodeevent_getpredragstatus) | 获取预览拖拽事件状态。 |
53| [int32_t OH_ArkUI_DragEvent_DisableDefaultDropAnimation(ArkUI_DragEvent* event, bool disable)](#oh_arkui_dragevent_disabledefaultdropanimation) | 设置是否禁用松手时的系统默认动效,默认不禁用,通常在应用需要自定义落位动效时配置。 |
54| [int32_t OH_ArkUI_DragEvent_SetSuggestedDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation dropOperation)](#oh_arkui_dragevent_setsuggesteddropoperation) | 设置数据处理方式。 |
55| [int32_t OH_ArkUI_DragEvent_SetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult result)](#oh_arkui_dragevent_setdragresult) | 设置拖拽事件的结果。 |
56| [int32_t OH_ArkUI_DragEvent_SetData(ArkUI_DragEvent* event, OH_UdmfData* data)](#oh_arkui_dragevent_setdata) | 向ArkUI_DragEvent中设置拖拽数据。 |
57| [ArkUI_ErrorCode OH_ArkUI_DragEvent_SetDataLoadParams(ArkUI_DragEvent* event, OH_UdmfDataLoadParams* dataLoadParams)](#oh_arkui_dragevent_setdataloadparams) | 调用此方法向系统提供数据加载参数,而非直接传入完整的数据对象。当用户将数据拖拽至目标应用程序并释放时,系统将使用dataLoadParams请求数据。这可以显著提高拖拽大量数据及目标应用程序处理释放数据的效率。此方法应始终优先于[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)存在冲突,系统始终以最后调用的方法为准。 |
58| [int32_t OH_ArkUI_DragEvent_GetUdmfData(ArkUI_DragEvent* event, OH_UdmfData *data)](#oh_arkui_dragevent_getudmfdata) | 从ArkUI_DragEvent中获取拖拽默认相关数据。 |
59| [int32_t OH_ArkUI_DragEvent_GetDataTypeCount(ArkUI_DragEvent* event, int32_t* count)](#oh_arkui_dragevent_getdatatypecount) | 从ArkUI_DragEvent中获取所拖拽的数据类型种类个数。 |
60| [int32_t OH_ArkUI_DragEvent_GetDataTypes(ArkUI_DragEvent *event, char *eventTypeArray[], int32_t length, int32_t maxStrLen)](#oh_arkui_dragevent_getdatatypes) | 从ArkUI_DragEvent中获取拖拽数据的类型列表。 |
61| [int32_t OH_ArkUI_DragEvent_GetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult* result)](#oh_arkui_dragevent_getdragresult) | 从ArkUI_DragEvent中获取拖拽结果。 |
62| [int32_t OH_ArkUI_DragEvent_GetDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation* operation)](#oh_arkui_dragevent_getdropoperation) | 从ArkUI_DragEvent中获取数据处理方式。 |
63| [float OH_ArkUI_DragEvent_GetPreviewTouchPointX(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewtouchpointx) | 从ArkUI_DragEvent中获取预览图跟手点的x轴坐标。 |
64| [float OH_ArkUI_DragEvent_GetPreviewTouchPointY(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewtouchpointy) | 从ArkUI_DragEvent中获取预览图跟手点的y轴坐标。 |
65| [float OH_ArkUI_DragEvent_GetPreviewRectWidth(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewrectwidth) | 从ArkUI_DragEvent中获取预览图的宽。 |
66| [float OH_ArkUI_DragEvent_GetPreviewRectHeight(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewrectheight) | 从ArkUI_DragEvent中获取预览图的高。 |
67| [float OH_ArkUI_DragEvent_GetTouchPointXToWindow(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtowindow) | 从ArkUI_DragEvent中获取跟手点相对于window的x轴坐标。 |
68| [float OH_ArkUI_DragEvent_GetTouchPointYToWindow(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytowindow) | 从ArkUI_DragEvent中获取跟手点相对于window的y轴坐标。 |
69| [float OH_ArkUI_DragEvent_GetTouchPointXToDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtodisplay) | 从ArkUI_DragEvent中获取跟手点相对于当前Display的x轴坐标。 |
70| [float OH_ArkUI_DragEvent_GetTouchPointYToDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytodisplay) | 从ArkUI_DragEvent中获取跟手点相对于当前Display的y轴坐标。 |
71| [float OH_ArkUI_DragEvent_GetVelocityX(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocityx) | 获取当前拖拽的x轴方向拖动速度。 |
72| [float OH_ArkUI_DragEvent_GetVelocityY(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocityy) | 获取当前拖拽的y轴方向拖动速度。 |
73| [float OH_ArkUI_DragEvent_GetVelocity(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocity) | 获取当前拖拽的主方向拖动速度。 |
74| [int32_t OH_ArkUI_DragEvent_GetModifierKeyStates(ArkUI_DragEvent* event, uint64_t* keys)](#oh_arkui_dragevent_getmodifierkeystates) | 获取功能键按压状态。 |
75| [int32_t OH_ArkUI_DragEvent_StartDataLoading(ArkUI_DragEvent* event, OH_UdmfGetDataParams* options, char* key, unsigned int keyLen)](#oh_arkui_dragevent_startdataloading) | 使用指定的同步参数开始数据同步。 |
76| [int32_t OH_ArkUI_CancelDataLoading(ArkUI_ContextHandle uiContext, const char* key)](#oh_arkui_canceldataloading) | 取消正在进行的数据同步。 |
77| [int32_t OH_ArkUI_DisableDropDataPrefetchOnNode(ArkUI_NodeHandle node, bool disabled)](#oh_arkui_disabledropdataprefetchonnode) | 设置是否在执行onDrop回调之前禁用数据预获取过程。系统将重试获取数据,直到达到最大时间限制(目前为2.4秒),这对跨设备的拖动操作非常有用,因为它有助于系统稳定通信。然而,对于[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)方法而言,这一特性显得多余。该方法采用异步机制获取数据,因此在onDrop中使用[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)时,为了避免在onDrop执行前意外获取数据,必须将此字段设置为true。 |
78| [int32_t OH_ArkUI_SetDragEventStrictReportWithNode(ArkUI_NodeHandle node, bool enabled)](#oh_arkui_setdrageventstrictreportwithnode) | 控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,需要通过传入一个当前UI实例上的一个具体的组件节点来关联。 |
79| [int32_t OH_ArkUI_SetDragEventStrictReportWithContext(ArkUI_ContextHandle uiContext, bool enabled)](#oh_arkui_setdrageventstrictreportwithcontext) | 控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,可通过传入一个UI实例进行关联。 |
80| [int32_t OH_ArkUI_SetNodeAllowedDropDataTypes(ArkUI_NodeHandle node, const char* typesArray[], int32_t count)](#oh_arkui_setnodealloweddropdatatypes) | 配置组件允许接受落入的数据类型,该接口会重置通过 [OH_ArkUI_DisallowNodeAnyDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_disallownodeanydropdatatypes) 或[OH_ArkUI_AllowNodeAllDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_allownodealldropdatatypes)进行的配置。 |
81| [int32_t OH_ArkUI_DisallowNodeAnyDropDataTypes(ArkUI_NodeHandle node)](#oh_arkui_disallownodeanydropdatatypes) | 配置组件不允许接受任何数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 |
82| [int32_t OH_ArkUI_AllowNodeAllDropDataTypes(ArkUI_NodeHandle node)](#oh_arkui_allownodealldropdatatypes) | 配置组件允许接受任意数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 |
83| [int32_t OH_ArkUI_SetNodeDraggable(ArkUI_NodeHandle node, bool enabled)](#oh_arkui_setnodedraggable) | 设置该组件是否允许进行拖拽。 |
84| [int32_t OH_ArkUI_SetNodeDragPreview(ArkUI_NodeHandle node, OH_PixelmapNative* preview)](#oh_arkui_setnodedragpreview) | 设置组件在被拖拽时的自定义跟手图。 |
85| [ArkUI_DragPreviewOption* OH_ArkUI_CreateDragPreviewOption(void)](#oh_arkui_createdragpreviewoption) | 构建一个ArkUI_DragPreviewOption对象。 |
86| [void OH_ArkUI_DragPreviewOption_Dispose(ArkUI_DragPreviewOption* option)](#oh_arkui_dragpreviewoption_dispose) | 销毁跟手图自定义参数对象实例。 |
87| [int32_t OH_ArkUI_DragPreviewOption_SetScaleMode(ArkUI_DragPreviewOption* option, ArkUI_DragPreviewScaleMode scaleMode)](#oh_arkui_dragpreviewoption_setscalemode) | 设置拖拽跟手图是否根据系统定义自动进行缩放。 |
88| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultshadowenabled) | 设置跟手图背板默认的投影效果,默认不开启。 |
89| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultradiusenabled) | 设置跟手图背板默认的圆角效果,默认不开启。 |
90| [int32_t OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setnumberbadgeenabled) | 设置跟手图背板是否显示角标,开启后,系统会根据拖拽数量自动进行角标显示。 |
91| [int32_t OH_ArkUI_DragPreviewOption_SetBadgeNumber(ArkUI_DragPreviewOption* option, uint32_t forcedNumber)](#oh_arkui_dragpreviewoption_setbadgenumber) | 强制显示角标的数量,覆盖SetDragPreviewNumberBadgeEnabled设置的值。 |
92| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultanimationbeforeliftingenabled) | 配置是否开启点按时的默认动画。 |
93| [int32_t OH_ArkUI_SetNodeDragPreviewOption(ArkUI_NodeHandle node, ArkUI_DragPreviewOption* option)](#oh_arkui_setnodedragpreviewoption) | 将构造的ArkUI_DragPreviewOption设置给组件。 |
94| [ArkUI_DragAction* OH_ArkUI_CreateDragActionWithNode(ArkUI_NodeHandle node)](#oh_arkui_createdragactionwithnode) | 创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个当前UI实例的某个组件节点来指定。 |
95| [ArkUI_DragAction* OH_ArkUI_CreateDragActionWithContext(ArkUI_ContextHandle uiContext)](#oh_arkui_createdragactionwithcontext) | 创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个UI实例指针来关联。 |
96| [void OH_ArkUI_DragAction_Dispose(ArkUI_DragAction* dragAction)](#oh_arkui_dragaction_dispose) | 销毁创建的 ArkUI_DragAction 对象。 |
97| [int32_t OH_ArkUI_DragAction_SetPointerId(ArkUI_DragAction* dragAction, int32_t pointer)](#oh_arkui_dragaction_setpointerid) | 设置手指ID,当屏幕上仅有一只手指在操作时,pointer ID 为 0;一般情况下,配置 0 即可。 |
98| [int32_t OH_ArkUI_DragAction_SetPixelMaps(ArkUI_DragAction* dragAction, OH_PixelmapNative* pixelmapArray[], int32_t size)](#oh_arkui_dragaction_setpixelmaps) | 设置拖拽跟手图,只能使用 pixelmap 格式对象。 |
99| [int32_t OH_ArkUI_DragAction_SetTouchPointX(ArkUI_DragAction* dragAction, float x)](#oh_arkui_dragaction_settouchpointx) | 设置跟手点,相对于设置的第一个pixelmap的左上角。 |
100| [int32_t OH_ArkUI_DragAction_SetTouchPointY(ArkUI_DragAction* dragAction, float y)](#oh_arkui_dragaction_settouchpointy) | 设置跟手点,相对于设置的第一个pixelmap的左上角。 |
101| [int32_t OH_ArkUI_DragAction_SetData(ArkUI_DragAction* dragAction, OH_UdmfData* data)](#oh_arkui_dragaction_setdata) | 设置拖拽数据。 |
102| [ArkUI_ErrorCode OH_ArkUI_DragAction_SetDataLoadParams(ArkUI_DragAction* dragAction,OH_UdmfDataLoadParams* dataLoadParams)](#oh_arkui_dragaction_setdataloadparams) | 使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)存在冲突,系统始终以最后调用的方法为准。 |
103| [int32_t OH_ArkUI_DragAction_SetDragPreviewOption(ArkUI_DragAction* dragAction, ArkUI_DragPreviewOption* option)](#oh_arkui_dragaction_setdragpreviewoption) | 将构造的ArkUI_DragPreviewOption设置给ArkUI_DragAction。 |
104| [int32_t OH_ArkUI_DragAction_RegisterStatusListener(ArkUI_DragAction* dragAction, void* userData,void(\*listener)(ArkUI_DragAndDropInfo* dragAndDropInfo, void* userData))](#oh_arkui_dragaction_registerstatuslistener) | 注册拖拽状态监听回调,该回调可感知到拖拽已经发起或用户松手结束的状态,可通过该监听获取到落入方对数据的接收处理是否成功。 |
105| [ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDisplayId(ArkUI_DragEvent event, int32_t* displayId)](#oh_arkui_dragevent_getdisplayid) | 获取当前拖拽事件发生时所在的屏幕ID,不支持当eventType为NODE_ON_DRAG_END时获取。 |
106| [void OH_ArkUI_DragAction_UnregisterStatusListener(ArkUI_DragAction* dragAction)](#oh_arkui_dragaction_unregisterstatuslistener) | 解注册拖拽状态监听回调。 |
107| [ArkUI_DragStatus OH_ArkUI_DragAndDropInfo_GetDragStatus(ArkUI_DragAndDropInfo* dragAndDropInfo)](#oh_arkui_draganddropinfo_getdragstatus) | 获取dragAction发起拖拽的状态,获取异常时返回 ArkUI_DRAG_STATUS_UNKNOWN。 |
108| [ArkUI_DragEvent* OH_ArkUI_DragAndDropInfo_GetDragEvent(ArkUI_DragAndDropInfo* dragAndDropInfo)](#oh_arkui_draganddropinfo_getdragevent) | 通过dragAndDropInfo获取到DragEvent,可通过DragEvent获取释放结果等。 |
109| [int32_t OH_ArkUI_StartDrag(ArkUI_DragAction* dragAction)](#oh_arkui_startdrag) | 通过构造的DragAction对象发起拖拽。 |
110| [int32_t OH_ArkUI_DragEvent_RequestDragEndPending(ArkUI_DragEvent* event, int32_t* requestIdentify)](#oh_arkui_dragevent_requestdragendpending) | 请求延迟处理拖拽结束事件,等待应用程序确认操作结果。应用程序需通过 [OH_ArkUI_NotifyDragResult](capi-drag-and-drop-h.md#oh_arkui_notifydragresult)接口将最终结果回传至系统,并在所有处理完成后调用 [OH_ArkUI_NotifyDragEndPendingDone](capi-drag-and-drop-h.md#oh_arkui_notifydragendpendingdone)。最大等待时间为2秒。 |
111| [int32_t OH_ArkUI_NotifyDragResult(int32_t requestIdentify, ArkUI_DragResult result)](#oh_arkui_notifydragresult) | 通知系统最终拖拽结果。系统会校验请求标识符是否与[OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending)返回的一致,不一致则忽略本次调用。 |
112| [int32_t OH_ArkUI_NotifyDragEndPendingDone(int32_t requestIdentify)](#oh_arkui_notifydragendpendingdone) | 通知系统所有异步处理已完成,可结束拖拽结束挂起状态。 |
113| [ArkUI_ErrorCode OH_ArkUI_EnableDropDisallowedBadge(ArkUI_ContextHandle uiContext, bool enabled)](#oh_arkui_enabledropdisallowedbadge) | 设置是否可以显示禁用角标。 |
114| [float OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtoglobaldisplay) | 从ArkUI_DragEvent中获取跟手点相对于全局屏幕的x轴坐标。 |
115| [float OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytoglobaldisplay) | 从ArkUI_DragEvent中获取跟手点相对于全局屏幕的y轴坐标。 |
116| [ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDragSource(ArkUI_DragEvent* event, char *bundleName, int32_t length)](#oh_arkui_dragevent_getdragsource) | 获取拖拽发起方的应用包名信息,需要传递一个字符数组来接收包名字符串,并显式指明数组长度,该数组长度不小于128个字符。 |
117| [ArkUI_ErrorCode OH_ArkUI_DragEvent_IsRemote(ArkUI_DragEvent* event, bool* isRemote)](#oh_arkui_dragevent_isremote) | 判断当前的拖拽操作是否是跨设备拖拽。 |
118
119## 枚举类型说明
120
121### ArkUI_DragResult
122
123```
124enum ArkUI_DragResult
125```
126
127**描述:**
128
129
130拖拽结果定义,由数据接收方设置,并由系统传递给数据拖出方,拖出方可感知接收方对数据的处理结果。
131
132**起始版本:** 12
133
134| 枚举项 | 描述 |
135| -- | -- |
136| ARKUI_DRAG_RESULT_SUCCESSFUL = 0 | 拖拽处理成功。 |
137| ARKUI_DRAG_RESULT_FAILED | 拖拽处理失败。 |
138| ARKUI_DRAG_RESULT_CANCELED | 拖拽处理取消。 |
139
140### ArkUI_DropOperation
141
142```
143enum ArkUI_DropOperation
144```
145
146**描述:**
147
148
149定义拖拽释放时的数据处理方式,可影响角标的显示。
150
151**起始版本:** 12
152
153| 枚举项 | 描述 |
154| -- | -- |
155| ARKUI_DROP_OPERATION_COPY = 0 | 复制行为。 |
156| ARKUI_DROP_OPERATION_MOVE | 剪切行为。 |
157
158### ArkUI_PreDragStatus
159
160```
161enum ArkUI_PreDragStatus
162```
163
164**描述:**
165
166
167定义拖拽发起前的长按交互阶段的变化状态。
168
169**起始版本:** 12
170
171| 枚举项 | 描述 |
172| -- | -- |
173| ARKUI_PRE_DRAG_STATUS_UNKNOWN = -1 | Unknown。 |
174| ARKUI_PRE_DRAG_STATUS_ACTION_DETECTING | 拖拽手势启动阶段。 |
175| ARKUI_PRE_DRAG_STATUS_READY_TO_TRIGGER_DRAG | 拖拽准备完成,可发起拖拽阶段。 |
176| ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_STARTED | 拖拽浮起动效发起阶段。 |
177| ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_FINISHED | 拖拽浮起动效结束阶段。 |
178| ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_STARTED | 拖拽落回动效发起阶段。 |
179| ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_FINISHED | 拖拽落回动效结束阶段。 |
180| ARKUI_PRE_DRAG_STATUS_CANCELED_BEFORE_DRAG | 拖拽浮起落位动效中断。 |
181
182### ArkUI_DragPreviewScaleMode
183
184```
185enum ArkUI_DragPreviewScaleMode
186```
187
188**描述:**
189
190
191拖拽预览缩放模式。
192
193**起始版本:** 12
194
195| 枚举项 | 描述 |
196| -- | -- |
197| ARKUI_DRAG_PREVIEW_SCALE_AUTO = 0 | 系统根据拖拽场景自动改变跟手点位置,根据规则自动对拖拽背板图进行缩放变换等。 |
198| ARKUI_DRAG_PREVIEW_SCALE_DISABLED | 禁用系统对拖拽背板图的缩放行为。 |
199
200### ArkUI_DragStatus
201
202```
203enum ArkUI_DragStatus
204```
205
206**描述:**
207
208
209拖拽状态。
210
211**起始版本:** 12
212
213| 枚举项 | 描述 |
214| -- | -- |
215| ARKUI_DRAG_STATUS_UNKNOWN = -1 | Unknown。 |
216| ARKUI_DRAG_STATUS_STARTED | Started。 |
217| ARKUI_DRAG_STATUS_ENDED | Ended。 |
218
219
220## 函数说明
221
222### OH_ArkUI_NodeEvent_GetDragEvent()
223
224```
225ArkUI_DragEvent* OH_ArkUI_NodeEvent_GetDragEvent(ArkUI_NodeEvent* nodeEvent)
226```
227
228**描述:**
229
230
231从 NodeEvent 中获取DragEvent。
232
233**起始版本:** 12
234
235
236**参数:**
237
238| 参数项                            | 描述 |
239|--------------------------------| -- |
240| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)* nodeEvent | ArkUI_NodeEvent事件指针。 |
241
242**返回:**
243
244| 类型 | 说明 |
245| -- | -- |
246| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* | ArkUI_DragEvent 事件指针,当传入的 NodeEvent 无效或不是拖拽相关的事件时,则返回空。 |
247
248### OH_ArkUI_NodeEvent_GetPreDragStatus()
249
250```
251ArkUI_PreDragStatus OH_ArkUI_NodeEvent_GetPreDragStatus(ArkUI_NodeEvent* nodeEvent)
252```
253
254**描述:**
255
256
257获取预览拖拽事件状态。
258
259**起始版本:** 12
260
261
262**参数:**
263
264| 参数项 | 描述 |
265| -- | -- |
266| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)* nodeEvent | ArkUI_NodeEvent节点对象。 |
267
268**返回:**
269
270| 类型 | 说明 |
271| -- | -- |
272| [ArkUI_PreDragStatus](capi-drag-and-drop-h.md#arkui_predragstatus) | ArkUI_PreDragStatus 拖拽发起前交互状态。 |
273
274### OH_ArkUI_DragEvent_DisableDefaultDropAnimation()
275
276```
277int32_t OH_ArkUI_DragEvent_DisableDefaultDropAnimation(ArkUI_DragEvent* event, bool disable)
278```
279
280**描述:**
281
282
283设置是否禁用松手时的系统默认动效,默认不禁用,通常在应用需要自定义落位动效时配置。
284
285**起始版本:** 12
286
287
288**参数:**
289
290| 参数项 | 描述 |
291| -- | -- |
292| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
293| bool disable | 是否禁用松手时的系统默认动效,true禁用,false不禁用。 |
294
295**返回:**
296
297| 类型 | 说明 |
298| -- | -- |
299| 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) 函数参数异常。 |
300
301### OH_ArkUI_DragEvent_SetSuggestedDropOperation()
302
303```
304int32_t OH_ArkUI_DragEvent_SetSuggestedDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation dropOperation)
305```
306
307**描述:**
308
309
310设置数据处理方式。
311
312**起始版本:** 12
313
314
315**参数:**
316
317| 参数项 | 描述 |
318| -- | -- |
319| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
320| [ArkUI_DropOperation](capi-drag-and-drop-h.md#arkui_dropoperation) dropOperation | 角标显示状态的类型。 |
321
322**返回:**
323
324| 类型 | 说明 |
325| -- | -- |
326| 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) 函数参数异常。 |
327
328### OH_ArkUI_DragEvent_SetDragResult()
329
330```
331int32_t OH_ArkUI_DragEvent_SetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult result)
332```
333
334**描述:**
335
336
337设置拖拽事件的结果。
338
339**起始版本:** 12
340
341
342**参数:**
343
344| 参数项 | 描述 |
345| -- | -- |
346| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
347| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) result | 拖拽数据处理结果。 |
348
349**返回:**
350
351| 类型 | 说明 |
352| -- | -- |
353| 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) 函数参数异常。 |
354
355### OH_ArkUI_DragEvent_SetData()
356
357```
358int32_t OH_ArkUI_DragEvent_SetData(ArkUI_DragEvent* event, OH_UdmfData* data)
359```
360
361**描述:**
362
363
364向ArkUI_DragEvent中设置拖拽数据。
365
366**起始版本:** 12
367
368
369**参数:**
370
371| 参数项 | 描述 |
372| -- | -- |
373| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
374| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* data | 拖拽数据。 |
375
376**返回:**
377
378| 类型 | 说明 |
379| -- | -- |
380| 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) 函数参数异常。 |
381
382### OH_ArkUI_DragEvent_SetDataLoadParams()
383
384```
385ArkUI_ErrorCode OH_ArkUI_DragEvent_SetDataLoadParams(ArkUI_DragEvent* event, OH_UdmfDataLoadParams* dataLoadParams)
386```
387
388**描述:**
389
390
391使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)存在冲突,系统始终以最后调用的方法为准。
392
393**起始版本:** 20
394
395
396**参数:**
397
398| 参数项 | 描述 |
399| -- | -- |
400| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
401| [OH_UdmfDataLoadParams](../apis-arkdata/capi-udmf-oh-udmfdataloadparams.md)* dataLoadParams | 落入操作时使用的数据加载参数。 |
402
403**返回:**
404
405| 类型 | 说明 |
406| -- | -- |
407| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
408
409### OH_ArkUI_DragEvent_GetUdmfData()
410
411```
412int32_t OH_ArkUI_DragEvent_GetUdmfData(ArkUI_DragEvent* event, OH_UdmfData *data)
413```
414
415**描述:**
416
417
418从ArkUI_DragEvent中获取拖拽默认相关数据。
419
420**起始版本:** 12
421
422
423**参数:**
424
425| 参数项 | 描述 |
426| -- | -- |
427| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
428| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md) *data | OH_UdmfData 拖拽的数据指针,应用在接收时需通过 [OH_UdmfData_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdata_create) 方法创建一个用于接收数据的指针。 |
429
430**返回:**
431
432| 类型 | 说明 |
433| -- | -- |
434| 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) 函数参数异常。 |
435
436### OH_ArkUI_DragEvent_GetDataTypeCount()
437
438```
439int32_t OH_ArkUI_DragEvent_GetDataTypeCount(ArkUI_DragEvent* event, int32_t* count)
440```
441
442**描述:**
443
444
445从ArkUI_DragEvent中获取所拖拽的数据类型种类个数。
446
447**起始版本:** 12
448
449
450**参数:**
451
452| 参数项 | 描述 |
453| -- | -- |
454| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
455| int32_t* count | 出参,返回所拖拽数据的类型的数量。 |
456
457**返回:**
458
459| 类型 | 说明 |
460| -- | -- |
461| 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) 函数参数异常。 |
462
463### OH_ArkUI_DragEvent_GetDataTypes()
464
465```
466int32_t OH_ArkUI_DragEvent_GetDataTypes(ArkUI_DragEvent *event, char *eventTypeArray[], int32_t length, int32_t maxStrLen)
467```
468
469**描述:**
470
471
472从ArkUI_DragEvent中获取拖拽数据的类型列表。
473
474**起始版本:** 12
475
476
477**参数:**
478
479| 参数项 | 描述 |
480| -- | -- |
481| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) *event | ArkUI_DragEvent事件指针。 |
482| char *eventTypeArray[] | 返回拖拽数据的类型列表,需要先自行创建字符串数组。 |
483| int32_t length | 数组总长度,不应少于使用OH_ArkUI_DragEvent_GetDataTypesCount获取到的数量。 |
484| int32_t maxStrLen | 拖拽数据类型的最大字符串长度。 |
485
486**返回:**
487
488| 类型 | 说明 |
489| -- | -- |
490| 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) 函数参数异常。<br>         [ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR](capi-native-type-h.md#arkui_errorcode) 缓冲区大小不足。 |
491
492### OH_ArkUI_DragEvent_GetDragResult()
493
494```
495int32_t OH_ArkUI_DragEvent_GetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult* result)
496```
497
498**描述:**
499
500
501从ArkUI_DragEvent中获取拖拽结果。
502
503**起始版本:** 12
504
505
506**参数:**
507
508| 参数项 | 描述 |
509| -- | -- |
510| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
511| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult)* result | 出参,返回拖拽事件对应的拖拽结果。 |
512
513**返回:**
514
515| 类型 | 说明 |
516| -- | -- |
517| 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) 函数参数异常。 |
518
519### OH_ArkUI_DragEvent_GetDropOperation()
520
521```
522int32_t OH_ArkUI_DragEvent_GetDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation* operation)
523```
524
525**描述:**
526
527
528从ArkUI_DragEvent中获取数据处理方式。
529
530**起始版本:** 12
531
532
533**参数:**
534
535| 参数项 | 描述 |
536| -- | -- |
537| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
538| [ArkUI_DropOperation](capi-drag-and-drop-h.md#arkui_dropoperation)* operation | 数据的处理方式. |
539
540**返回:**
541
542| 类型 | 说明 |
543| -- | -- |
544| 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) 函数参数异常。<br>                可能原因: 1. 参数为空或event非有效的DragEvent. |
545
546### OH_ArkUI_DragEvent_GetPreviewTouchPointX()
547
548```
549float OH_ArkUI_DragEvent_GetPreviewTouchPointX(ArkUI_DragEvent* event)
550```
551
552**描述:**
553
554
555从ArkUI_DragEvent中获取预览图跟手点的x轴坐标。
556
557**起始版本:** 12
558
559
560**参数:**
561
562| 参数项 | 描述 |
563| -- | -- |
564| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
565
566**返回:**
567
568| 类型 | 说明 |
569| -- | -- |
570| float | float 返回拖拽跟手点的x轴坐标,单位为px,传入参数无效时返回默认值0。 |
571
572### OH_ArkUI_DragEvent_GetPreviewTouchPointY()
573
574```
575float OH_ArkUI_DragEvent_GetPreviewTouchPointY(ArkUI_DragEvent* event)
576```
577
578**描述:**
579
580
581从ArkUI_DragEvent中获取预览图跟手点的y轴坐标。
582
583**起始版本:** 12
584
585
586**参数:**
587
588| 参数项 | 描述 |
589| -- | -- |
590| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
591
592**返回:**
593
594| 类型 | 说明 |
595| -- | -- |
596| float | float 返回拖拽跟手点的y轴坐标,单位px,传入参数无效时返回默认值0。|
597
598### OH_ArkUI_DragEvent_GetPreviewRectWidth()
599
600```
601float OH_ArkUI_DragEvent_GetPreviewRectWidth(ArkUI_DragEvent* event)
602```
603
604**描述:**
605
606
607从ArkUI_DragEvent中获取预览图的宽。
608
609**起始版本:** 12
610
611
612**参数:**
613
614| 参数项 | 描述 |
615| -- | -- |
616| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
617
618**返回:**
619
620| 类型 | 说明 |
621| -- | -- |
622| float | float 返回拖拽跟手图宽度,单位为px,传入参数无效时返回默认值0。|
623
624### OH_ArkUI_DragEvent_GetPreviewRectHeight()
625
626```
627float OH_ArkUI_DragEvent_GetPreviewRectHeight(ArkUI_DragEvent* event)
628```
629
630**描述:**
631
632
633从ArkUI_DragEvent中获取预览图的高。
634
635**起始版本:** 12
636
637
638**参数:**
639
640| 参数项 | 描述 |
641| -- | -- |
642| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
643
644**返回:**
645
646| 类型 | 说明 |
647| -- | -- |
648| float | float 返回拖拽跟手图高度,单位为px,传入参数无效时返回默认值0。|
649
650### OH_ArkUI_DragEvent_GetTouchPointXToWindow()
651
652```
653float OH_ArkUI_DragEvent_GetTouchPointXToWindow(ArkUI_DragEvent* event)
654```
655
656**描述:**
657
658
659从ArkUI_DragEvent中获取跟手点相对于window的x轴坐标。
660
661**起始版本:** 12
662
663
664**参数:**
665
666| 参数项 | 描述 |
667| -- | -- |
668| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
669
670**返回:**
671
672| 类型 | 说明 |
673| -- | -- |
674| float | float 返回跟手点相对于window的x轴坐标,单位为px,传入参数无效时返回默认值0。|
675
676### OH_ArkUI_DragEvent_GetTouchPointYToWindow()
677
678```
679float OH_ArkUI_DragEvent_GetTouchPointYToWindow(ArkUI_DragEvent* event)
680```
681
682**描述:**
683
684
685从ArkUI_DragEvent中获取跟手点相对于window的y轴坐标。
686
687**起始版本:** 12
688
689
690**参数:**
691
692| 参数项 | 描述 |
693| -- | -- |
694| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
695
696**返回:**
697
698| 类型 | 说明 |
699| -- | -- |
700| float | float 返回跟手点相对于window的y轴坐标,单位为px,传入参数无效时返回默认值0。|
701
702### OH_ArkUI_DragEvent_GetTouchPointXToDisplay()
703
704```
705float OH_ArkUI_DragEvent_GetTouchPointXToDisplay(ArkUI_DragEvent* event)
706```
707
708**描述:**
709
710
711从ArkUI_DragEvent中获取跟手点相对于当前Display的x轴坐标。
712
713**起始版本:** 12
714
715
716**参数:**
717
718| 参数项 | 描述 |
719| -- | -- |
720| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
721
722**返回:**
723
724| 类型 | 说明 |
725| -- | -- |
726| float | float 返回拖拽跟手点相对于当前Display的x轴坐标,单位为px,传入参数无效时返回默认值0。|
727
728### OH_ArkUI_DragEvent_GetTouchPointYToDisplay()
729
730```
731float OH_ArkUI_DragEvent_GetTouchPointYToDisplay(ArkUI_DragEvent* event)
732```
733
734**描述:**
735
736
737从ArkUI_DragEvent中获取跟手点相对于当前Display的y轴坐标。
738
739**起始版本:** 12
740
741
742**参数:**
743
744| 参数项 | 描述 |
745| -- | -- |
746| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
747
748**返回:**
749
750| 类型 | 说明 |
751| -- | -- |
752| float | float 返回拖拽跟手点相对于当前Display的y轴坐标,单位为px,传入参数无效时返回默认值0。|
753
754### OH_ArkUI_DragEvent_GetVelocityX()
755
756```
757float OH_ArkUI_DragEvent_GetVelocityX(ArkUI_DragEvent* event)
758```
759
760**描述:**
761
762
763获取当前拖拽的x轴方向拖动速度。
764
765**起始版本:** 12
766
767
768**参数:**
769
770| 参数项 | 描述 |
771| -- | -- |
772| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
773
774**返回:**
775
776| 类型 | 说明 |
777| -- | -- |
778| float | float 返回当前拖拽的x轴方向移动速度,单位为px/s,传入参数无效时返回默认值0。|
779
780### OH_ArkUI_DragEvent_GetVelocityY()
781
782```
783float OH_ArkUI_DragEvent_GetVelocityY(ArkUI_DragEvent* event)
784```
785
786**描述:**
787
788
789获取当前拖拽的y轴方向拖动速度。
790
791**起始版本:** 12
792
793
794**参数:**
795
796| 参数项 | 描述 |
797| -- | -- |
798| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
799
800**返回:**
801
802| 类型 | 说明 |
803| -- | -- |
804| float | float 返回当前拖拽的y轴方向移动速度,单位为px/s,传入参数无效时返回默认值0。|
805
806### OH_ArkUI_DragEvent_GetVelocity()
807
808```
809float OH_ArkUI_DragEvent_GetVelocity(ArkUI_DragEvent* event)
810```
811
812**描述:**
813
814
815获取当前拖拽的主方向拖动速度。
816
817**起始版本:** 12
818
819
820**参数:**
821
822| 参数项 | 描述 |
823| -- | -- |
824| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
825
826**返回:**
827
828| 类型 | 说明 |
829| -- | -- |
830| float | float 返回当前拖拽移动速度,单位为px/s,传入参数无效时返回默认值0。|
831
832### OH_ArkUI_DragEvent_GetModifierKeyStates()
833
834```
835int32_t OH_ArkUI_DragEvent_GetModifierKeyStates(ArkUI_DragEvent* event, uint64_t* keys)
836```
837
838**描述:**
839
840
841获取功能键按压状态。
842
843**起始版本:** 12
844
845
846**参数:**
847
848| 参数项 | 描述 |
849| -- | -- |
850| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
851| uint64_t* keys | 返回当前处于按下状态的 modifier key组合,应用可通过位运算进行判断。 |
852
853**返回:**
854
855| 类型 | 说明 |
856| -- | -- |
857| 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) 函数参数异常。 |
858
859### OH_ArkUI_DragEvent_StartDataLoading()
860
861```
862int32_t OH_ArkUI_DragEvent_StartDataLoading(ArkUI_DragEvent* event, OH_UdmfGetDataParams* options, char* key, unsigned int keyLen)
863```
864
865**描述:**
866
867
868使用指定的同步参数开始数据同步。
869
870**起始版本:** 15
871
872
873**参数:**
874
875| 参数项 | 描述 |
876| -- | -- |
877| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
878| [OH_UdmfGetDataParams](../apis-arkdata/capi-udmf-oh-udmfgetdataparams.md)* options | OH_UdmfGetDataParams参数指针。 |
879| char* key | 返回数据设置成功之后的key值,字符串长度不小于[UDMF_KEY_BUFFER_LEN](../apis-arkdata/capi-udmf-h.md#udmf_key_buffer_len)。 |
880| unsigned int keyLen | 表示key字符串的长度。 |
881
882**返回:**
883
884| 类型 | 说明 |
885| -- | -- |
886| 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) 函数参数异常。 |
887
888### OH_ArkUI_CancelDataLoading()
889
890```
891int32_t OH_ArkUI_CancelDataLoading(ArkUI_ContextHandle uiContext, const char* key)
892```
893
894**描述:**
895
896
897取消正在进行的数据同步。
898
899**起始版本:** 15
900
901
902**参数:**
903
904| 参数项 | 描述 |
905| -- | -- |
906| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 |
907| const char* key | 表示数据的key值并通过 [OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading) 返回。 |
908
909**返回:**
910
911| 类型 | 说明 |
912| -- | -- |
913| 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) 函数参数异常。<br>         ARKUI_ERROR_CODE_OPERATION_FAILED 当前没有进行中的数据同步任务。 |
914
915### OH_ArkUI_DisableDropDataPrefetchOnNode()
916
917```
918int32_t OH_ArkUI_DisableDropDataPrefetchOnNode(ArkUI_NodeHandle node, bool disabled)
919```
920
921**描述:**
922
923
924设置是否在执行onDrop回调之前禁用数据预获取过程。系统将重试获取数据,直到达到最大时间限制(目前为2.4秒),这对跨设备的拖动操作非常有用,因为它有助于系统稳定通信。然而,对于[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)方法而言,这一特性显得多余。该方法采用异步机制获取数据,因此在onDrop中使用[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)时,为了避免在onDrop执行前意外获取数据,必须将此字段设置为true。
925
926**起始版本:** 15
927
928
929**参数:**
930
931| 参数项 | 描述 |
932| -- | -- |
933| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
934| bool disabled | 表示是禁用数据预取过程。true表示禁止,false表示不禁止。 |
935
936**返回:**
937
938| 类型 | 说明 |
939| -- | -- |
940| 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) 函数参数异常。 |
941
942### OH_ArkUI_SetDragEventStrictReportWithNode()
943
944```
945int32_t OH_ArkUI_SetDragEventStrictReportWithNode(ArkUI_NodeHandle node, bool enabled)
946```
947
948**描述:**
949
950
951控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,需要通过传入一个当前UI实例上的一个具体的组件节点来关联。
952
953**起始版本:** 12
954
955
956**参数:**
957
958| 参数项 | 描述 |
959| -- | -- |
960| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
961| bool enabled | 是否开启严格上报。true表示开启严格上报,false表示关闭严格上报。 |
962
963**返回:**
964
965| 类型 | 说明 |
966| -- | -- |
967| 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) 函数参数异常。 |
968
969### OH_ArkUI_SetDragEventStrictReportWithContext()
970
971```
972int32_t OH_ArkUI_SetDragEventStrictReportWithContext(ArkUI_ContextHandle uiContext, bool enabled)
973```
974
975**描述:**
976
977
978控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,可通过传入一个UI实例进行关联。
979
980**起始版本:** 12
981
982
983**参数:**
984
985| 参数项 | 描述 |
986| -- | -- |
987| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例指针。 |
988| bool enabled | 是否开启严格上报。true表示开启严格上报,false表示关闭严格上报。 |
989
990**返回:**
991
992| 类型 | 说明 |
993| -- | -- |
994| 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) 函数参数异常。 |
995
996### OH_ArkUI_SetNodeAllowedDropDataTypes()
997
998```
999int32_t OH_ArkUI_SetNodeAllowedDropDataTypes(ArkUI_NodeHandle node, const char* typesArray[], int32_t count)
1000```
1001
1002**描述:**
1003
1004
1005配置组件允许接受落入的数据类型,该接口会重置通过 [OH_ArkUI_DisallowNodeAnyDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_disallownodeanydropdatatypes) 或[OH_ArkUI_AllowNodeAllDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_allownodealldropdatatypes)进行的配置。
1006
1007**起始版本:** 12
1008
1009
1010**参数:**
1011
1012| 参数项 | 描述 |
1013| -- | -- |
1014| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1015| const char* typesArray[] | 允许落入的数据类型数组。 |
1016| int32_t count | 数组的长度。 |
1017
1018**返回:**
1019
1020| 类型 | 说明 |
1021| -- | -- |
1022| 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) 函数参数异常。 |
1023
1024### OH_ArkUI_DisallowNodeAnyDropDataTypes()
1025
1026```
1027int32_t OH_ArkUI_DisallowNodeAnyDropDataTypes(ArkUI_NodeHandle node)
1028```
1029
1030**描述:**
1031
1032
1033配置组件不允许接受任何数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。
1034
1035**起始版本:** 12
1036
1037
1038**参数:**
1039
1040| 参数项 | 描述 |
1041| -- | -- |
1042| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1043
1044**返回:**
1045
1046| 类型 | 说明 |
1047| -- | -- |
1048| 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) 函数参数异常。 |
1049
1050### OH_ArkUI_AllowNodeAllDropDataTypes()
1051
1052```
1053int32_t OH_ArkUI_AllowNodeAllDropDataTypes(ArkUI_NodeHandle node)
1054```
1055
1056**描述:**
1057
1058
1059配置组件允许接受任意数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。
1060
1061**起始版本:** 12
1062
1063
1064**参数:**
1065
1066| 参数项 | 描述 |
1067| -- | -- |
1068| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1069
1070**返回:**
1071
1072| 类型 | 说明 |
1073| -- | -- |
1074| 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) 函数参数异常。 |
1075
1076### OH_ArkUI_SetNodeDraggable()
1077
1078```
1079int32_t OH_ArkUI_SetNodeDraggable(ArkUI_NodeHandle node, bool enabled)
1080```
1081
1082**描述:**
1083
1084
1085设置该组件是否允许进行拖拽。
1086
1087**起始版本:** 12
1088
1089
1090**参数:**
1091
1092| 参数项 | 描述 |
1093| -- | -- |
1094| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1095| bool enabled | 是否支持拖出。true表示支持拖出,false表示不支持拖出。 |
1096
1097**返回:**
1098
1099| 类型 | 说明 |
1100| -- | -- |
1101| 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) 函数参数异常。 |
1102
1103### OH_ArkUI_SetNodeDragPreview()
1104
1105```
1106int32_t OH_ArkUI_SetNodeDragPreview(ArkUI_NodeHandle node, OH_PixelmapNative* preview)
1107```
1108
1109**描述:**
1110
1111
1112设置组件在被拖拽时的自定义跟手图。
1113
1114**起始版本:** 12
1115
1116
1117**参数:**
1118
1119| 参数项                                                              | 描述 |
1120|------------------------------------------------------------------| -- |
1121| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 目标组件节点指针。 |
1122| OH_PixelmapNative* preview                                   | 自定义跟手图,使用 pixelmap 格式。 |
1123
1124**返回:**
1125
1126| 类型 | 说明 |
1127| -- | -- |
1128| 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) 函数参数异常。 |
1129
1130### OH_ArkUI_CreateDragPreviewOption()
1131
1132```
1133ArkUI_DragPreviewOption* OH_ArkUI_CreateDragPreviewOption(void)
1134```
1135
1136**描述:**
1137
1138
1139构建一个ArkUI_DragPreviewOption对象。
1140
1141**起始版本:** 12
1142
1143**返回:**
1144
1145| 类型                           | 说明 |
1146|------------------------------| -- |
1147| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* | ArkUI_DragPreviewOption对象。 |
1148
1149### OH_ArkUI_DragPreviewOption_Dispose()
1150
1151```
1152void OH_ArkUI_DragPreviewOption_Dispose(ArkUI_DragPreviewOption* option)
1153```
1154
1155**描述:**
1156
1157
1158销毁跟手图自定义参数对象实例。
1159
1160**起始版本:** 12
1161
1162
1163**参数:**
1164
1165| 参数项 | 描述 |
1166| -- | -- |
1167| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1168
1169### OH_ArkUI_DragPreviewOption_SetScaleMode()
1170
1171```
1172int32_t OH_ArkUI_DragPreviewOption_SetScaleMode(ArkUI_DragPreviewOption* option, ArkUI_DragPreviewScaleMode scaleMode)
1173```
1174
1175**描述:**
1176
1177
1178设置拖拽跟手图是否根据系统定义自动进行缩放。
1179
1180**起始版本:** 12
1181
1182
1183**参数:**
1184
1185| 参数项 | 描述 |
1186| -- | -- |
1187| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1188| [ArkUI_DragPreviewScaleMode](capi-drag-and-drop-h.md#arkui_dragpreviewscalemode) scaleMode | 设置组件拖拽过程中的跟手图缩放模式。 |
1189
1190**返回:**
1191
1192| 类型 | 说明 |
1193| -- | -- |
1194| 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) 函数参数异常。 |
1195
1196### OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled()
1197
1198```
1199int32_t OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled(ArkUI_DragPreviewOption* option, bool enabled)
1200```
1201
1202**描述:**
1203
1204
1205设置跟手图背板默认的投影效果,默认不开启。
1206
1207**起始版本:** 12
1208
1209
1210**参数:**
1211
1212| 参数项 | 描述 |
1213| -- | -- |
1214| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1215| bool enabled | 是否使用默认投影效果。true表示使用默认投影效果,false表示不使用默认投影效果。 |
1216
1217**返回:**
1218
1219| 类型 | 说明 |
1220| -- | -- |
1221| 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) 函数参数异常。 |
1222
1223### OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled()
1224
1225```
1226int32_t OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled(ArkUI_DragPreviewOption* option, bool enabled)
1227```
1228
1229**描述:**
1230
1231
1232设置跟手图背板默认的圆角效果,默认不开启。
1233
1234**起始版本:** 12
1235
1236
1237**参数:**
1238
1239| 参数项 | 描述 |
1240| -- | -- |
1241| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1242| bool enabled | 是否开启圆角效果显示。true表示开启圆角效果显示,false表示不开启圆角效果显示。 |
1243
1244**返回:**
1245
1246| 类型 | 说明 |
1247| -- | -- |
1248| 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) 函数参数异常。 |
1249
1250### OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled()
1251
1252```
1253int32_t OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled(ArkUI_DragPreviewOption* option, bool enabled)
1254```
1255
1256**描述:**
1257
1258
1259设置跟手图背板是否显示角标,开启后,系统会根据拖拽数量自动进行角标显示。
1260
1261**起始版本:** 12
1262
1263
1264**参数:**
1265
1266| 参数项 | 描述 |
1267| -- | -- |
1268| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1269| bool enabled | 是否开启角标显示。true表示开启角标显示,false表示不开启角标显示。 |
1270
1271**返回:**
1272
1273| 类型 | 说明 |
1274| -- | -- |
1275| 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) 函数参数异常。 |
1276
1277### OH_ArkUI_DragPreviewOption_SetBadgeNumber()
1278
1279```
1280int32_t OH_ArkUI_DragPreviewOption_SetBadgeNumber(ArkUI_DragPreviewOption* option, uint32_t forcedNumber)
1281```
1282
1283**描述:**
1284
1285
1286强制显示角标的数量,覆盖SetDragPreviewNumberBadgeEnabled设置的值。
1287
1288**起始版本:** 12
1289
1290
1291**参数:**
1292
1293| 参数项 | 描述 |
1294| -- | -- |
1295| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1296| uint32_t forcedNumber | 角标的数量。 |
1297
1298**返回:**
1299
1300| 类型 | 说明 |
1301| -- | -- |
1302| 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) 函数参数异常。 |
1303
1304### OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled()
1305
1306```
1307int32_t OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled(ArkUI_DragPreviewOption* option, bool enabled)
1308```
1309
1310**描述:**
1311
1312
1313配置是否开启点按时的默认动画。
1314
1315**起始版本:** 12
1316
1317
1318**参数:**
1319
1320| 参数项 | 描述 |
1321| -- | -- |
1322| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1323| bool enabled | 是否开启默认点按效果。true表示开启默认点按效果,false表示不开启默认点按效果。 |
1324
1325**返回:**
1326
1327| 类型 | 说明 |
1328| -- | -- |
1329| 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) 函数参数异常。 |
1330
1331### OH_ArkUI_SetNodeDragPreviewOption()
1332
1333```
1334int32_t OH_ArkUI_SetNodeDragPreviewOption(ArkUI_NodeHandle node, ArkUI_DragPreviewOption* option)
1335```
1336
1337**描述:**
1338
1339
1340将构造的ArkUI_DragPreviewOption设置给组件。
1341
1342**起始版本:** 12
1343
1344
1345**参数:**
1346
1347| 参数项 | 描述 |
1348| -- | -- |
1349| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1350| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1351
1352**返回:**
1353
1354| 类型 | 说明 |
1355| -- | -- |
1356| 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) 函数参数异常。 |
1357
1358### OH_ArkUI_CreateDragActionWithNode()
1359
1360```
1361ArkUI_DragAction* OH_ArkUI_CreateDragActionWithNode(ArkUI_NodeHandle node)
1362```
1363
1364**描述:**
1365
1366
1367创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个当前UI实例的某个组件节点来指定。
1368
1369**起始版本:** 12
1370
1371
1372**参数:**
1373
1374| 参数项 | 描述 |
1375| -- | -- |
1376| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 |
1377
1378**返回:**
1379
1380| 类型                    | 说明 |
1381|-----------------------| -- |
1382| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* | ArkUI_DragAction对象指针,如果创建失败,则返回空。 |
1383
1384### OH_ArkUI_CreateDragActionWithContext()
1385
1386```
1387ArkUI_DragAction* OH_ArkUI_CreateDragActionWithContext(ArkUI_ContextHandle uiContext)
1388```
1389
1390**描述:**
1391
1392
1393创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个UI实例指针来关联。
1394
1395**起始版本:** 12
1396
1397
1398**参数:**
1399
1400| 参数项 | 描述 |
1401| -- | -- |
1402| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 |
1403
1404**返回:**
1405
1406| 类型 | 说明 |
1407| -- | -- |
1408| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* | ArkUI_DragAction对象,如果创建失败,则返回空。 |
1409
1410### OH_ArkUI_DragAction_Dispose()
1411
1412```
1413void OH_ArkUI_DragAction_Dispose(ArkUI_DragAction* dragAction)
1414```
1415
1416**描述:**
1417
1418
1419销毁创建的 ArkUI_DragAction 对象。
1420
1421**起始版本:** 12
1422
1423
1424**参数:**
1425
1426| 参数项 | 描述 |
1427| -- | -- |
1428| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1429
1430### OH_ArkUI_DragAction_SetPointerId()
1431
1432```
1433int32_t OH_ArkUI_DragAction_SetPointerId(ArkUI_DragAction* dragAction, int32_t pointer)
1434```
1435
1436**描述:**
1437
1438
1439设置手指ID,当屏幕上仅有一只手指在操作时,pointer ID 为 0;一般情况下,配置 0 即可。
1440
1441**起始版本:** 12
1442
1443
1444**参数:**
1445
1446| 参数项 | 描述 |
1447| -- | -- |
1448| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1449| int32_t pointer | 手指ID,范围 0~9。 |
1450
1451**返回:**
1452
1453| 类型 | 说明 |
1454| -- | -- |
1455| 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) 函数参数异常。 |
1456
1457### OH_ArkUI_DragAction_SetPixelMaps()
1458
1459```
1460int32_t OH_ArkUI_DragAction_SetPixelMaps(ArkUI_DragAction* dragAction, OH_PixelmapNative* pixelmapArray[], int32_t size)
1461```
1462
1463**描述:**
1464
1465
1466设置拖拽跟手图,只能使用 pixelmap 格式对象。
1467
1468**起始版本:** 12
1469
1470
1471**参数:**
1472
1473| 参数项                                                                                  | 描述 |
1474|--------------------------------------------------------------------------------------| -- |
1475| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction          | 拖拽行为对象。 |
1476| OH_PixelmapNative* pixelmapArray[] | 拖拽跟手图位图数组。 |
1477| int32_t size                                                                         | 拖拽跟手图数量。 |
1478
1479**返回:**
1480
1481| 类型 | 说明 |
1482| -- | -- |
1483| 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) 函数参数异常。 |
1484
1485### OH_ArkUI_DragAction_SetTouchPointX()
1486
1487```
1488int32_t OH_ArkUI_DragAction_SetTouchPointX(ArkUI_DragAction* dragAction, float x)
1489```
1490
1491**描述:**
1492
1493
1494设置跟手点,相对于设置的第一个pixelmap的左上角。
1495
1496**起始版本:** 12
1497
1498
1499**参数:**
1500
1501| 参数项 | 描述 |
1502| -- | -- |
1503| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1504| float x | 跟手点坐标x值,单位为px。 |
1505
1506**返回:**
1507
1508| 类型 | 说明 |
1509| -- | -- |
1510| 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) 函数参数异常。 |
1511
1512### OH_ArkUI_DragAction_SetTouchPointY()
1513
1514```
1515int32_t OH_ArkUI_DragAction_SetTouchPointY(ArkUI_DragAction* dragAction, float y)
1516```
1517
1518**描述:**
1519
1520
1521设置跟手点,相对于设置的第一个pixelmap的左上角。
1522
1523**起始版本:** 12
1524
1525
1526**参数:**
1527
1528| 参数项 | 描述 |
1529| -- | -- |
1530| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1531| float y | 跟手点坐标y值,单位为px。 |
1532
1533**返回:**
1534
1535| 类型 | 说明 |
1536| -- | -- |
1537| 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) 函数参数异常。 |
1538
1539### OH_ArkUI_DragAction_SetData()
1540
1541```
1542int32_t OH_ArkUI_DragAction_SetData(ArkUI_DragAction* dragAction, OH_UdmfData* data)
1543```
1544
1545**描述:**
1546
1547
1548设置拖拽数据。
1549
1550**起始版本:** 12
1551
1552
1553**参数:**
1554
1555| 参数项 | 描述 |
1556| -- | -- |
1557| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1558| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* data | 拖拽数据。 |
1559
1560**返回:**
1561
1562| 类型 | 说明 |
1563| -- | -- |
1564| 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) 函数参数异常。 |
1565
1566### OH_ArkUI_DragAction_SetDataLoadParams()
1567
1568```
1569ArkUI_ErrorCode OH_ArkUI_DragAction_SetDataLoadParams(ArkUI_DragAction* dragAction,OH_UdmfDataLoadParams* dataLoadParams)
1570```
1571
1572**描述:**
1573
1574
1575使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)存在冲突,系统始终以最后调用的方法为准。
1576
1577**起始版本:** 20
1578
1579
1580**参数:**
1581
1582| 参数项 | 描述 |
1583| -- | -- |
1584| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1585| [OH_UdmfDataLoadParams](../apis-arkdata/capi-udmf-oh-udmfdataloadparams.md)* dataLoadParams | 在落入操作时使用的数据加载参数。 |
1586
1587**返回:**
1588
1589| 类型 | 说明 |
1590| -- | -- |
1591| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
1592
1593### OH_ArkUI_DragAction_SetDragPreviewOption()
1594
1595```
1596int32_t OH_ArkUI_DragAction_SetDragPreviewOption(ArkUI_DragAction* dragAction, ArkUI_DragPreviewOption* option)
1597```
1598
1599**描述:**
1600
1601
1602将构造的ArkUI_DragPreviewOption设置给ArkUI_DragAction。
1603
1604**起始版本:** 12
1605
1606
1607**参数:**
1608
1609| 参数项 | 描述 |
1610| -- | -- |
1611| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1612| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 |
1613
1614**返回:**
1615
1616| 类型 | 说明 |
1617| -- | -- |
1618| 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) 函数参数异常。 |
1619
1620### OH_ArkUI_DragAction_RegisterStatusListener()
1621
1622```
1623int32_t OH_ArkUI_DragAction_RegisterStatusListener(ArkUI_DragAction* dragAction, void* userData,void(*listener)(ArkUI_DragAndDropInfo* dragAndDropInfo, void* userData))
1624```
1625
1626**描述:**
1627
1628
1629注册拖拽状态监听回调,该回调可感知到拖拽已经发起或用户松手结束的状态,可通过该监听获取到落入方对数据的接收处理是否成功。
1630
1631**起始版本:** 12
1632
1633
1634**参数:**
1635
1636| 参数项 | 描述 |
1637| -- | -- |
1638| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1639| void* userData | 应用自定义数据。 |
1640| listener | 状态监听回调,回调触发时,系统会返回一个拖拽状态对象指针,该指针会在回调执行完成后被销毁,应用不应再持有。 |
1641
1642**返回:**
1643
1644| 类型 | 说明 |
1645| -- | -- |
1646| 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) 函数参数异常。 |
1647
1648### OH_ArkUI_DragEvent_GetDisplayId()
1649
1650```
1651ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDisplayId(ArkUI_DragEvent event, int32_t* displayId)
1652```
1653
1654**描述:**
1655
1656
1657获取当前拖拽事件发生时所在的屏幕ID,不支持当eventType为NODE_ON_DRAG_END时获取。
1658
1659**起始版本:** 20
1660
1661
1662**参数:**
1663
1664| 参数项 | 描述 |
1665| -- | -- |
1666| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) event | ArkUI_DragEvent事件指针。 |
1667| int32_t* displayId | 返回当前拖拽事件发生时所在的屏幕ID。 |
1668
1669**返回:**
1670
1671| 类型 | 说明 |
1672| -- | -- |
1673| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
1674
1675### OH_ArkUI_DragAction_UnregisterStatusListener()
1676
1677```
1678void OH_ArkUI_DragAction_UnregisterStatusListener(ArkUI_DragAction* dragAction)
1679```
1680
1681**描述:**
1682
1683
1684解注册拖拽状态监听回调。
1685
1686**起始版本:** 12
1687
1688
1689**参数:**
1690
1691| 参数项 | 描述 |
1692| -- | -- |
1693| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 |
1694
1695### OH_ArkUI_DragAndDropInfo_GetDragStatus()
1696
1697```
1698ArkUI_DragStatus OH_ArkUI_DragAndDropInfo_GetDragStatus(ArkUI_DragAndDropInfo* dragAndDropInfo)
1699```
1700
1701**描述:**
1702
1703
1704获取dragaction发起拖拽的状态,获取异常时返回 ArkUI_DRAG_STATUS_UNKNOWN。
1705
1706**起始版本:** 12
1707
1708
1709**参数:**
1710
1711| 参数项 | 描述 |
1712| -- | -- |
1713| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md)* dragAndDropInfo | 拖拽状态监听返回的拖拽相关信息。 |
1714
1715**返回:**
1716
1717| 类型 | 说明 |
1718| -- | -- |
1719| [ArkUI_DragStatus](capi-drag-and-drop-h.md#arkui_dragstatus) | ArkUI_DragStatus 拖拽状态,如果获取失败,返回默认值 ArkUI_DRAG_STATUS_UNKNOWN。 |
1720
1721### OH_ArkUI_DragAndDropInfo_GetDragEvent()
1722
1723```
1724ArkUI_DragEvent* OH_ArkUI_DragAndDropInfo_GetDragEvent(ArkUI_DragAndDropInfo* dragAndDropInfo)
1725```
1726
1727**描述:**
1728
1729
1730通过dragAndDropInfo获取到DragEvent,可通过DragEvent获取释放结果等。
1731
1732**起始版本:** 12
1733
1734
1735**参数:**
1736
1737| 参数项 | 描述 |
1738| -- | -- |
1739| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md)* dragAndDropInfo | 拖拽状态监听返回的拖拽相关信息。 |
1740
1741**返回:**
1742
1743| 类型 | 说明 |
1744| -- | -- |
1745| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* | ArkUI_DragEvent 拖拽事件,如果获取失败,则返回空。 |
1746
1747### OH_ArkUI_StartDrag()
1748
1749```
1750int32_t OH_ArkUI_StartDrag(ArkUI_DragAction* dragAction)
1751```
1752
1753**描述:**
1754
1755
1756通过构造的DragAction对象发起拖拽。
1757
1758**起始版本:** 12
1759
1760
1761**参数:**
1762
1763| 参数项 | 描述 |
1764| -- | -- |
1765| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽action对象。 |
1766
1767**返回:**
1768
1769| 类型 | 说明 |
1770| -- | -- |
1771| 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) 函数参数异常。 |
1772
1773### OH_ArkUI_DragEvent_RequestDragEndPending()
1774
1775```
1776int32_t OH_ArkUI_DragEvent_RequestDragEndPending(ArkUI_DragEvent* event, int32_t* requestIdentify)
1777```
1778
1779**描述:**
1780
1781
1782请求延迟处理拖拽结束事件,等待应用程序确认操作结果。应用程序需通过 [OH_ArkUI_NotifyDragResult](capi-drag-and-drop-h.md#oh_arkui_notifydragresult)接口将最终结果回传至系统,并在所有处理完成后调用 [OH_ArkUI_NotifyDragEndPendingDone](capi-drag-and-drop-h.md#oh_arkui_notifydragendpendingdone)。最大等待时间为2秒。
1783
1784**起始版本:** 19
1785
1786
1787**参数:**
1788
1789| 参数项 | 描述 |
1790| -- | -- |
1791| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向 <b>ArkUI_DragEvent</b> 对象的指针。 |
1792| int32_t* requestIdentify | 系统自动生成的请求标识符,是一个输出参数,需要为一个有效的地址。 |
1793
1794**返回:**
1795
1796| 类型 | 说明 |
1797| -- | -- |
1798| 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)  函数参数异常。<br>         [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode)  执行函数时不在落入的时机。 |
1799
1800### OH_ArkUI_NotifyDragResult()
1801
1802```
1803int32_t OH_ArkUI_NotifyDragResult(int32_t requestIdentify, ArkUI_DragResult result)
1804```
1805
1806**描述:**
1807
1808
1809通知系统最终拖拽结果。系统会校验请求标识符是否与[OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending)返回的一致,不一致则忽略本次调用。
1810
1811**起始版本:** 19
1812
1813
1814**参数:**
1815
1816| 参数项 | 描述 |
1817| -- | -- |
1818| int32_t requestIdentify | 由 [OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending) 返回的标识符。 |
1819| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) result | 拖拽结果枚举值([ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) 类型)。 |
1820
1821**返回:**
1822
1823| 类型 | 说明 |
1824| -- | -- |
1825| 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)  函数参数异常。<br>         [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode)  执行函数时不在落入的时机。 |
1826
1827### OH_ArkUI_NotifyDragEndPendingDone()
1828
1829```
1830int32_t OH_ArkUI_NotifyDragEndPendingDone(int32_t requestIdentify)
1831```
1832
1833**描述:**
1834
1835
1836通知系统所有异步处理已完成,可结束拖拽结束挂起状态。
1837
1838**起始版本:** 19
1839
1840
1841**参数:**
1842
1843| 参数项 | 描述 |
1844| -- | -- |
1845| int32_t requestIdentify | 由 [OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending) 返回的标识符。 |
1846
1847**返回:**
1848
1849| 类型 | 说明 |
1850| -- | -- |
1851| 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)  函数参数异常。<br>         [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode)  执行函数时不在落入的时机。 |
1852
1853### OH_ArkUI_EnableDropDisallowedBadge()
1854
1855```
1856ArkUI_ErrorCode OH_ArkUI_EnableDropDisallowedBadge(ArkUI_ContextHandle uiContext, bool enabled)
1857```
1858
1859**描述:**
1860
1861
1862设置是否可以显示禁用角标。
1863
1864**起始版本:** 20
1865
1866
1867**参数:**
1868
1869| 参数项 | 描述 |
1870| -- | -- |
1871| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 |
1872| bool enabled | 是否可以显示禁用角标。true表示可以显示禁用角标,false表示不可以显示禁用角标。 |
1873
1874**返回:**
1875
1876| 类型 | 说明 |
1877| -- | -- |
1878| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
1879
1880### OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay()
1881
1882```
1883float OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay(ArkUI_DragEvent* event)
1884```
1885
1886**描述:**
1887
1888
1889从ArkUI_DragEvent中获取跟手点相对于全局屏幕的x轴坐标。
1890
1891**起始版本:** 20
1892
1893
1894**参数:**
1895
1896| 参数项 | 描述 |
1897| -- | -- |
1898| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
1899
1900**返回:**
1901
1902| 类型 | 说明 |
1903| -- | -- |
1904| float | float 返回拖拽跟手点相对于全局Display的x轴坐标,单位为px,传入参数无效时返回默认值0。 |
1905
1906### OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay()
1907
1908```
1909float OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay(ArkUI_DragEvent* event)
1910```
1911
1912**描述:**
1913
1914
1915从ArkUI_DragEvent中获取跟手点相对于全局屏幕的y轴坐标。
1916
1917**起始版本:** 20
1918
1919
1920**参数:**
1921
1922| 参数项 | 描述 |
1923| -- | -- |
1924| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 |
1925
1926**返回:**
1927
1928| 类型 | 说明 |
1929| -- | -- |
1930| float | float 返回拖拽跟手点相对于全局Display的y轴坐标,单位为px,传入参数无效时返回默认值0。 |
1931
1932### OH_ArkUI_DragEvent_GetDragSource()
1933
1934```
1935ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDragSource(ArkUI_DragEvent* event, char *bundleName, int32_t length)
1936```
1937
1938**描述:**
1939
1940
1941获取拖拽发起方的应用包名信息,需要传递一个字符数组来接收包名字符串,并显式指明数组长度,该数组长度不小于128个字符。
1942
1943**起始版本:** 20
1944
1945
1946**参数:**
1947
1948| 参数项 | 描述 |
1949| -- | -- |
1950| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向<b>ArkUI_DragEvent</b>对象的指针。 |
1951| char *bundleName | 用来接收拖起方包名的字符串数组,长度不应小于128个字符。 |
1952| int32_t length | 用来显式指明传入的字符串数组长度,不应小于128个字符。 |
1953
1954**返回:**
1955
1956| 类型 | 说明 |
1957| -- | -- |
1958| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
1959
1960### OH_ArkUI_DragEvent_IsRemote()
1961
1962```
1963ArkUI_ErrorCode OH_ArkUI_DragEvent_IsRemote(ArkUI_DragEvent* event, bool* isRemote)
1964```
1965
1966**描述:**
1967
1968
1969判断当前的拖拽操作是否是跨设备拖拽。
1970
1971**起始版本:** 20
1972
1973
1974**参数:**
1975
1976| 参数项 | 描述 |
1977| -- | -- |
1978| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向<b>ArkUI_DragEvent</b>对象的指针。 |
1979| bool* isRemote | 布尔变量指针,用来接收是否是跨设备拖拽。true表示是跨设备拖拽,false表示非跨设备拖拽。|
1980
1981**返回:**
1982
1983| 类型 | 说明 |
1984| -- | -- |
1985| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<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) 函数参数异常。 |
1986
1987
1988