Trascinamento della selezione

Il supporto per il trascinamento garantisce un'esperienza utente ottimale usando tutti i diversi tipi di input supportati da Surface Duo.

Questo esempio illustra come implementare il trascinamento e l'eliminazione nell'app Android, seguendo le indicazioni per il trascinamento e l'eliminazione di Android.

sample app UI using drag-and-drop

Valore chiave

Il trascinamento della selezione consente a un utente di condividere facilmente i dati tra le parti di un'app o tra diverse app su due schermi.

Tipi di app che possono trarre vantaggio da questo modello

  • App che contengono testo o immagini.

Per altre informazioni, vedere la sezione trascinamento della sezione Introduzione ai dispositivi a doppio schermo.

Provare l'esempio

Ottenere l'esempio di trascinamento della selezione in GitHub:

Panoramica del codice sorgente

Questi frammenti mostrano i passaggi chiave per il trascinamento della selezione.

  1. Collegare un dragListener alla visualizzazione in cui si vuole rilasciare.

    View.setOnDragListener();
    
  2. Implementare ACTION_DROP in onDrag()

    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
            case DragEvent.ACTION_DROP:
                return true;
        }
    }
    
  3. Afferrare l'URI da DragEvent

    DragEvent.getClipData().getItemAt().getUri();
    
  4. Richiedere un'autorizzazione a questo URI

    requestDragAndDropPermissions(DragEvent);
    
  5. Eseguire una query su ContentProvider per recuperare l'elemento eliminato

    File Metadata : ContentResolver.query( uri, new String[]{OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE}, null, null, null))
    Actual file :  ContentResolver.openFile(uri)