Drag & Drop
Die Unterstützung von Drag & Drop sorgt bei Verwendung der verschiedenen von Surface Duo unterstützten Eingabeformen für ein hervorragendes Benutzererlebnis.
Dieses Beispiel veranschaulicht, wie Du Drag & Drop gemäß der Android-Anleitung zu Drag & Drop in deiner Android-App implementieren kannst.
Schlüsselwert
Dank Drag & Drop können Benutzer auf zwei Bildschirmen Daten einfach zwischen Teilen einer App oder verschiedenen Apps austauschen.
Typen von Apps, die von diesem Muster profitieren können
- Apps, die Text oder Bilder enthalten
Weitere Informationen findest du in der Einführung in Doppelbildschirmgeräte im Abschnitt Drag & Drop.
Ausprobieren unseres Beispiels
Hol dir das Drag & Drop-Beispiel auf GitHub:
- Kotlin - Drag & Drop-Beispiel
- Java - Drag & Drop-Beispiel
Übersicht über den Quellcode
Diese Codeausschnitte zeigen die wichtigsten Schritte für Drag & Drop.
Füge einen dragListener an die Ansicht an, in der das Ablegen erfolgen soll.
View.setOnDragListener();
Implementieren von ACTION_DROP in onDrag()
public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: return true; } }
Abrufen des URI aus DragEvent
DragEvent.getClipData().getItemAt().getUri();
Anfordern einer Berechtigung für diesen URI
requestDragAndDropPermissions(DragEvent);
Richten einer Abfrage an ContentProvider zum Abrufen des abgelegten Elements
File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null)) Actual file : ContentResolver.openFile(uri)