Ativar o recurso de arrastar e soltar

O framework de arrastar e soltar do Android permite adicionar recursos interativos de arrastar e soltar ao app. Com esse recurso, os usuários podem copiar ou mover texto, imagens, objetos e qualquer conteúdo representado por um URI, de uma View para outra dentro de um app ou entre apps no modo de várias janelas.

String de texto e imagem sendo arrastadas e soltas em um app. String de texto e imagem sendo arrastadas e soltas entre apps no modo de tela dividida.
Figura 1. Arraste e solte em um app.
Figura 2. Arraste e solte entre apps.

O framework inclui uma classe de eventos de arrastar, listeners de arrastar e classes e métodos auxiliares. Embora ele tenha sido projetado principalmente para permitir a transferência de dados, você pode usar o framework para outras ações da interface. Por exemplo, você pode criar um app que mistura cores quando o usuário arrasta um ícone colorido sobre outro ícone. No entanto, o restante do documento descreve o framework de arrastar e soltar no contexto da transferência de dados.

Informações gerais

Há alguns elementos envolvidos no processo de arrastar.

  1. Origem da ação de arrastar: a visualização do ponto inicial do processo de arrastar e soltar.

  2. Destino de soltar: uma visualização que pode aceitar os dados de arrastar.

  3. Sombra de arrastar: uma sombra de arrastar é uma representação dos dados que estão sendo arrastados e fica visível para os usuários.

  4. Eventos de arrastar: à medida que o usuário move a sombra da ação de arrastar sobre o layout do app, o sistema envia eventos de arrastar aos listeners de eventos de arrastar e a métodos de callback associados aos objetos View no layout.

Uma operação de arrastar e soltar começa quando o usuário faz um gesto de IU que o app reconhece como um sinal para começar a arrastar dados. Em resposta, o app notifica o sistema de que uma operação de arrastar e soltar está sendo iniciada. O sistema vai chamar o app para mostrar uma sombra de arrastar e mostrá-la aos usuários durante o processo de arrastar e soltar.

À medida que o usuário move a sombra de arraste sobre o layout do app, o sistema envia eventos de arrastar para os listeners de eventos de arrastar e métodos de callback associados aos objetos View no layout. Se o usuário soltar a ação de arrastar sobre um destino de soltar, o sistema enviará os dados a ele. A operação de arrastar e soltar termina quando o usuário solta a sombra da ação de arrastar, mesmo que ela não esteja sobre um destino de soltar.

Tópicos

Principais conceitos
Entender o processo de arrastar e soltar
.
DropHelper para ação de arrastar e soltar simplificado
Aprenda a implementar o recurso de arrastar e soltar com o DropHelper.
Implementar o recurso de arrastar e soltar com a visualização
Como alternativa, implemente o recurso de arrastar e soltar com as visualizações do Android. Isso permite que os desenvolvedores tenham mais controle sobre os detalhes.
Arrastar e soltar no modo de várias janelas
Ofereça suporte ao recurso de arrastar e soltar no modo de várias janelas, permitindo que os objetos se movam entre diferentes aplicativos.