1
resposta

[Projeto] Não funcionou como esperado.

Olá boa tarde! Fiz exatamente o que foi pedido. Eles move tanto para esquerda como para direita, porém quando clico para arrastar para cima ou para baixo não funciona de jeito nenhum.

Segue o projeto https://github.com/LBoreiko/Alura-Ceep.git

1 resposta

Olá, Leonardo! Tudo bem?

Pelo que entendi, você está com dificuldades em implementar a funcionalidade de arrastar as notas para cima e para baixo no seu projeto.

Analisando o código que você compartilhou, percebi que você já fez as alterações necessárias no método getMovementFlags do NotaItemTouchHelperCallback para permitir o arraste nas direções desejadas. No entanto, ainda falta implementar a lógica para trocar a posição das notas na lista.

Para fazer isso, você precisa adicionar a lógica no método onMove do NotaItemTouchHelperCallback. Nesse método, você pode obter a posição inicial e final das notas arrastadas e, em seguida, realizar a troca de posição no banco de dados e no adapter.

Aqui está um exemplo de como você pode implementar essa lógica:

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
    int posicaoInicial = viewHolder.getAdapterPosition();
    int posicaoFinal = target.getAdapterPosition();
    new NotaDAO().troca(posicaoInicial, posicaoFinal);
    adapter.troca(posicaoInicial, posicaoFinal);
    return true;
}

No exemplo acima, estou supondo que você possui um método troca na classe NotaDAO que realiza a troca de posição das notas no banco de dados. Além disso, estou supondo que você possui um método troca no seu adapter que realiza a troca de posição das notas no RecyclerView.

Certifique-se de implementar esses métodos corretamente para que a troca de posição funcione corretamente.

Espero que isso ajude! Se tiver mais alguma dúvida, é só me dizer. Bons estudos!

Espero ter ajudado e bons estudos!