# androidx.compose.ui.draganddrop

Common/AllAndroid/JVM

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropModifierNode` | **This interface is deprecated.** This interface is deprecated in favor to DragAndDropSourceModifierNode and DragAndDropTargetModifierNode | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode` | A `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that can be used as a source for platform drag and drop operations. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropStartTransferScope` | A scope that allows starting a drag and drop session. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget` | Provides a means of receiving a transfer data from a drag and drop session. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTargetModifierNode` | A `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that can be used as a target for platform drag and drop operations. | Cmn |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent` | A representation of an event sent by the platform during a drag and drop operation. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTransferData` | Definition for a type representing transferable data. | Cmn android |

## Top-level functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropModifierNode` | `[DragAndDropModifierNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropModifierNode())()` **This function is deprecated.** Use DragAndDropSourceModifierNode instead | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropModifierNode` | `[DragAndDropModifierNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget))( shouldStartDragAndDrop: (event: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, target: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget )` **This function is deprecated.** Use DragAndDropTargetModifierNode instead | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropSourceModifierNode` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropSourceModifierNode(kotlin.Function2)(onStartTransfer: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropStartTransferScope.(https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropSourceModifierNode(kotlin.Function2)` for starting platform drag and drop sessions with the intention of transferring data. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTargetModifierNode` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropTargetModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)( shouldStartDragAndDrop: (event: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, target: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropTargetModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)` for receiving transfer data from platform drag and drop sessions. | Cmn |

## Extension functions summary

|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent.https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#(androidx.compose.ui.draganddrop.DragAndDropEvent).mimeTypes()()` The mime types present in a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent` | android |
| `https://developer.android.com/reference/android/view/DragEvent.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent.https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#(androidx.compose.ui.draganddrop.DragAndDropEvent).toAndroidDragEvent()()` Returns the backing `https://developer.android.com/reference/android/view/DragEvent.html` to read platform specific data | android |

## Top-level functions

### DragAndDropModifierNode

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDropNode.kt+function:DragAndDropModifierNode) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun [DragAndDropModifierNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropModifierNode())(): DragAndDropModifierNode
```

> [!CAUTION]
> **This function is deprecated.**   
> Use DragAndDropSourceModifierNode instead, use this instead:
>
> ```kotlin
> DragAndDropSourceModifierNode
> ```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` for starting platform drag and drop sessions with the intention of transferring data. A drag and stop session is started by calling `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropModifierNode#drag(androidx.compose.ui.draganddrop.DragAndDropTransferData,androidx.compose.ui.geometry.Size,kotlin.Function1)`.

### DragAndDropModifierNode

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDropNode.kt+function:DragAndDropModifierNode) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun [DragAndDropModifierNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget))(
    shouldStartDragAndDrop: (event: DragAndDropEvent) -> Boolean,
    target: DragAndDropTarget
): DragAndDropModifierNode
```

> [!CAUTION]
> **This function is deprecated.**   
> Use DragAndDropTargetModifierNode instead, use this instead:
>
> ```kotlin
> DragAndDropTargetModifierNode
> ```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` for receiving transfer data from platform drag and drop sessions. All `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)` instances provided by this function may also start drag and drop sessions by calling `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropModifierNode#drag(androidx.compose.ui.draganddrop.DragAndDropTransferData,androidx.compose.ui.geometry.Size,kotlin.Function1)`.

| Parameters |
|---|---|
| `shouldStartDragAndDrop: (event: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | allows for inspecting the start `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent` for a given session to decide whether or not the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget` would like to receive from it. |
| `target: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget` | allows for receiving events and transfer data from a given drag and drop session. |

### DragAndDropSourceModifierNode

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDropNode.kt+function:DragAndDropSourceModifierNode) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun DragAndDropSourceModifierNode(onStartTransfer: DragAndDropStartTransferScope.(Offset) -> Unit): DragAndDropSourceModifierNode
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropSourceModifierNode(kotlin.Function2)` for starting platform drag and drop sessions with the intention of transferring data.

| Parameters |
|---|---|
| `onStartTransfer: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropStartTransferScope.(https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | the callback function that is invoked when drag and drop session starts. It takes an `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` parameter representing the start position of the drag. |

### DragAndDropTargetModifierNode

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDropNode.kt+function:DragAndDropTargetModifierNode) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun DragAndDropTargetModifierNode(
    shouldStartDragAndDrop: (event: DragAndDropEvent) -> Boolean,
    target: DragAndDropTarget
): DragAndDropTargetModifierNode
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/package-summary#DragAndDropTargetModifierNode(kotlin.Function1,androidx.compose.ui.draganddrop.DragAndDropTarget)` for receiving transfer data from platform drag and drop sessions.

| Parameters |
|---|---|
| `shouldStartDragAndDrop: (event: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | allows for inspecting the start `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent` for a given session to decide whether or not the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget` would like to receive from it. |
| `target: https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropTarget` | allows for receiving events and transfer data from a given drag and drop session. |

## Extension functions

### DragAndDropEvent.mimeTypes

android Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDrop.android.kt+function:mimeTypes)

```
fun DragAndDropEvent.mimeTypes(): Set<String>
```

The mime types present in a `https://developer.android.com/reference/kotlin/androidx/compose/ui/draganddrop/DragAndDropEvent`

### DragAndDropEvent.toAndroidDragEvent

android Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/draganddrop/DragAndDrop.android.kt+function:toAndroidDragEvent)

```
fun DragAndDropEvent.toAndroidDragEvent(): DragEvent
```

Returns the backing `https://developer.android.com/reference/android/view/DragEvent.html` to read platform specific data