Glisser-déplacer
La prise en charge de la fonction glisser-déposer garantit une expérience utilisateur optimale à l’aide de tous les différents types d’entrée pris en charge par Surface Duo.
Cet exemple montre comment implémenter une opération glisser-déposer dans votre application Android, en suivant les conseils relatifs à la fonction glisser-déposer pour Android.
Valeur de la clé
La fonction glisser-déposer permet à un utilisateur de partager facilement des données entre des parties d’une application ou entre différentes applications affichées sur deux écrans.
Types d’applications qui peuvent tirer parti de ce modèle
- Applications qui contiennent du texte ou des images.
Pour plus d’informations, consultez la section relative à la fonction glisser-déposer dans Présentation des appareils double écran.
Essayer notre exemple
Procurez-vous l’exemple de la fonction glisser-déposer sur GitHub :
- Kotlin - Exemple de glisser-déposer
- Java - Exemple de glisser-déposer
Vue d’ensemble du code source
Ces extraits de code présentent les principales étapes d’une opération de glisser-déposer.
Attachez un dragListener à la vue où vous voulez effectuer le déplacement.
View.setOnDragListener();
Implémenter ACTION_DROP dans onDrag ()
public boolean onDrag(View v, DragEvent event) { switch (event.getAction()) { case DragEvent.ACTION_DROP: return true; } }
Récupérer l’URI dans DragEvent
DragEvent.getClipData().getItemAt().getUri();
Demander une autorisation à cet URI
requestDragAndDropPermissions(DragEvent);
Effectuer une requête sur ContentProvider pour extraire l’élément déplacé
File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null)) Actual file : ContentResolver.openFile(uri)