Partager via


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.

sample app UI using drag-and-drop

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 :

Vue d’ensemble du code source

Ces extraits de code présentent les principales étapes d’une opération de glisser-déposer.

  1. Attachez un dragListener à la vue où vous voulez effectuer le déplacement.

    View.setOnDragListener();
    
  2. Implémenter ACTION_DROP dans onDrag ()

    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
            case DragEvent.ACTION_DROP:
                return true;
        }
    }
    
  3. Récupérer l’URI dans DragEvent

    DragEvent.getClipData().getItemAt().getUri();
    
  4. Demander une autorisation à cet URI

    requestDragAndDropPermissions(DragEvent);
    
  5. 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)