Arrastar e soltar no Xamarin. Android

O suporte para o recurso de arrastar e soltar garante uma excelente experiência do usuário usando todos os tipos de entrada diferentes compatíveis com o Surface Duo.

Este exemplo demonstra como implementar o recurso de arrastar e soltar em seu aplicativo Android, seguindo as diretrizes de arrastar e soltar do Android.

interface do usuário do aplicativo de exemplo usando o recurso de arrastar e soltar

Valor da chave

O recurso de arrastar e soltar permite que o usuário compartilhe dados facilmente entre partes do aplicativo ou entre aplicativos diferentes em duas telas.

Tipos de aplicativos que podem se beneficiar desse padrão

  • Aplicativos que contêm texto ou imagens.

Para obter mais informações, confira a seção arrastar e soltar de Introdução a dispositivos com tela dupla.

Experimente nosso exemplo

Obter o exemplo de arrastar e soltar em github

Visão geral do código-fonte

Esses snippets mostram as principais etapas para o recurso de arrastar e soltar.

  1. Anexe um dragListener à exibição em que você deseja soltar.

    View.Drag += View_Drag;
    
  2. Implementar ACTION_DROP em onDrag()

    void View_Drag(object sender, View.DragEventArgs e)
    {
        if (e.Event.Action == DragAction.Drop)
        {
            e.Handled = true;
            // ...
        }
    }
    
  3. Segurar o URI de DragEvent

    e.Event.ClipData.GetItemAt(0).Uri;
    
  4. Solicitar uma permissão para este URI

    RequestDragAndDropPermissions(e.Event);
    
  5. Fazer uma consulta para ContentProvider para buscar o item descartado

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