Leggere in inglese

Condividi tramite


Trascinare e rilasciare in Xamarin. Android

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 Android trascinamento e rilascio.

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.Drag += View_Drag;
    
  2. Implementare ACTION_DROP in onDrag()

    void View_Drag(object sender, View.DragEventArgs e)
    {
        if (e.Event.Action == DragAction.Drop)
        {
            e.Handled = true;
            // ...
        }
    }
    
  3. Afferrare l'URI da DragEvent

    e.Event.ClipData.GetItemAt(0).Uri;
    
  4. Richiedere un'autorizzazione a questo URI

    RequestDragAndDropPermissions(e.Event);
    
  5. Eseguire una query su ContentProvider per recuperare l'elemento eliminato

    var metadata = ContentResolver.Query(uri, new [] { OpenableColumns.DisplayName, OpenableColumns.Size}, null, null, null))
    var file = ContentResolver.OpenFileDescriptor(uri, mode: "r");