Skip to content

DragAndDrop Target

val callback = remember {
object : DragAndDropTarget {
override fun onDrop(event: DragAndDropEvent): Boolean {
val dragEvent = event.toAndroidDragEvent()
text = dragEvent.clipData.getItemAt(0).text as String
return true
}
}
}
Modifier.dragAndDropTarget(
target = callback,
shouldStartDragAndDrop = {
it.mimeTypes().contains("text/plain")
}
)
val callback = remember {
object : DragAndDropTarget {
override fun onDrop(event: DragAndDropEvent): Boolean {
val dragEvent = event.toAndroidDragEvent()
val item = dragEvent.clipData.getItemAt(0)
(context as Activity).requestDragAndDropPermissions(
dragEvent
)
bitmap = context.contentResolver.openInputStream(item.uri).use { inputStream ->
BitmapFactory.decodeStream(inputStream)
}
return true
}
}
}
Modifier.dragAndDropTarget(
target = callback,
shouldStartDragAndDrop = {
it.mimeTypes().any { any -> any.startsWith("image") }
}
)