Compartilhar via


Arrastar e soltar

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.

sample app UI using drag-and-drop

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

Obtenha o exemplo do recurso de arrastar e soltar no 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.setOnDragListener();
    
  2. Implementar ACTION_DROP em onDrag()

    public boolean onDrag(View v, DragEvent event) {
        switch (event.getAction()) {
            case DragEvent.ACTION_DROP:
                return true;
        }
    }
    
  3. Segurar o URI de DragEvent

    DragEvent.getClipData().getItemAt().getUri();
    
  4. Solicitar uma permissão para este URI

    requestDragAndDropPermissions(DragEvent);
    
  5. Fazer uma consulta para ContentProvider para buscar o item descartado

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