2016-05-24 23 views
7

Ho bisogno di ascoltare l'utente quando interrompe il trascinamento sulla mia RecyclerView (quando lui elimina l'elemento selezionato).RecyclerView ItemTouchHelper Azione Trascinamento terminato

Posso ottenere queste informazioni tramite il mio ItemTouchHelper?

Grazie per l'aiuto

Mark: in questo momento ho solo ora quando l'utente sposta ancora la voce :)

@Override 
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) { 
    if (source.getItemViewType() != target.getItemViewType()) { 
     return false; 
    } 
    // Notify the adapter of the move 
    mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition()); 
    return true; 
} 
+0

si potrebbe desiderare di rinominare la tua domanda per renderlo più facile da trovare nelle ricerche :) –

risposta

7

AGGIORNATO

primo luogo è possibile definire dove un oggetto può essere eliminato applicando canDropOver

@Override 
public boolean canDropOver(RecyclerView recyclerView, RecyclerView.ViewHolder current, RecyclerView.ViewHolder target) { 
    return current.getItemViewType() == getItemViewType(); 
} 

aggiornare l'adattatore che si desidera utilizzare onMove questo può essere chiamata multipla durante un'operazione di trascinamento

@Override 
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { 
    adapter.moveItem(viewHolder.getAdapterPosition(), target.getAdapterPosition()); 
    return true; 
} 

Per rilevare quando un'interazione con un elemento è finita implementare clearView questo è per qualsiasi tipo di azione (drag o strisciare) in l'ancor che riesce (elemento spostato o strisciato) oppure viene annullato (articolo non spostato o strisciato)

@Override 
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { 
    super.clearView(recyclerView, viewHolder); 
    // Action finished 
} 
+0

aggiunto il mio metodo onMove ma come posso ottenere l'informazione che il movimento si è fermato? notifica solo quando è ancora in movimento – keytomake

+0

@keytomake Ho aggiornato la mia risposta per includere più informazioni. In pratica usa 'onMove' per aggiornare l'adattatore e' clearView' per determinare quando il trascinamento è completato. – cyroxis

+0

grazie !! clearView era esattamente ciò di cui avevo bisogno – keytomake