2016-05-24 9 views
7

Ich muss den Benutzer hören, wenn er per Drag & Drop auf meine RecyclerView stoppt (wenn er fällt das ausgewählte Element).RecyclerView ItemTouchHelper Aktion Drag Ended

Kann ich diese Informationen durch meinen ItemTouchHelper?

Vielen Dank für

Mark helfen: Im Moment nur jetzt habe ich, wenn der Benutzer noch das Element bewegt :)

@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

vielleicht möchten Sie Ihre Frage benennen, um es leichter zu machen bei der Suche zu finden :) –

Antwort

7

AKTUALISIERT

Zuerst können Sie festlegen, wo ein Objekt durch Implementierung canDropOver

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

Aktualisieren Sie Ihre Adapter möchten Sie onMove verwenden, um dies mehrere während eines Ziehvorgangs aufgerufen werden können

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

zu erkennen, wenn eine Interaktion mit einem Element über clearView dies für jeden Aktionstyp (drag oder Swipe) ist implementieren ist in die sogar, dass es (Punkt bewegt oder geklaut) erfolgreich war oder abgebrochen wird (Artikel nicht verschoben oder geklaut)

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

hinzugefügt mein OnMove Methode Aber wie kann ich die Information erreichen, dass die Bewegung aufgehört hat? es wird nur benachrichtigt, wenn es sich noch bewegt – keytomake

+0

@keytomake Ich habe meine Antwort aktualisiert, um weitere Informationen hinzuzufügen. Im Grunde verwenden Sie 'onMove', um Ihren Adapter zu aktualisieren und' clearView', um zu bestimmen, wann der Ziehvorgang abgeschlossen ist. – cyroxis

+0

danke !! clearView war genau das, was ich brauchte – keytomake

Verwandte Themen