Ich benutze ItemTouchHelper und ItemTouchHelper.SimpleCallback, um dem Benutzer zu erlauben, eine vertikale Liste Recycler View neu anzuordnen.ItemTouchHelper - Der Tropfen wird nach der ersten gesprungenen Linie erzwungen
Das Drag and Drop funktioniert, aber der Tropfen wird nach der ersten gesprungenen Linie erzwungen, obwohl ich meinen Finger nicht von der gezogenen Zelle lasse.
finden Sie unter dem SimpleCallback:
private void initSwipeAndDrap() {
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(
ItemTouchHelper.UP | ItemTouchHelper.DOWN,
0) {
//========== Swipe (Not used) ==============
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
}
//========== Drag ==============
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();
Podcast podcast = rva.podcasts.remove(fromPosition);
rva.podcasts.add(toPosition, podcast);
act.dmo.updatePodcastsListPosition();
act.dmo.notifyDataSetChangedPodcast();
return true;
}
@Override
public boolean isLongPressDragEnabled() {
return false;
}
};
itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(rv);
}
Ich stieß auf das Problem. Vielen Dank, dass Sie die Lösung veröffentlicht haben. – Malko
Für diejenigen, die immer noch nicht funktioniert: [Warum stoppt meine RecyclerView mit ItemTouchHelper Drag nach nur einem Element, nach dem Überschreiben von getItemViewType()?] (Https://stackoverflow.com/questions/39996110/why-does-my-recyclerview-with -itemtouchhelper-stop-Ziehen-nach-nur-ein-Objekt? rq = 1) – nyconing