Entdecken Sie in unserem Blogbeitrag, wie Sie mithilfe der Drag-and-Drop-Funktion die Benutzerinteraktion in Ihrer Android-Anwendung verbessern können. Wir zeigen Ihnen Schritt für Schritt, wie Sie diese Funktion in einer RecyclerView implementieren können, um eine intuitive Benutzererfahrung zu schaffen. Optimieren Sie Ihre Anwendung und steigern Sie die Benutzerzufriedenheit mit unseren praktischen Tipps und Tricks!
RecyclerView Drag and Drop
Die Drag-and-Drop-Funktionalität kann einer RecyclerView mithilfe der Hilfsklasse ItemTouchHelper hinzugefügt werden. Hier sind die wichtigen Methoden im Interface ItemTouchHelper.Callback, die implementiert werden müssen:
- isLongPressDragEnabled: Rückgabe von ‘true‘, um einen langen Druck auf die RecyclerView-Zeilen für das Drag-and-Drop zu ermöglichen.
- isItemViewSwipeEnabled: Wird verwendet, um Wischvorgänge zu aktivieren oder zu deaktivieren. In diesem Tutorial deaktivieren wir dies.
- getMovementFlags: Hier übergeben wir die Flags für die Richtungen von Drag und Swipe. Da Swipe deaktiviert ist, übergeben wir 0 dafür.
- onMove: Hier setzen wir den Code für das Drag-and-Drop.
- onSwipe: Hier implementieren wir den Code für das Wischen. In diesem Tutorial belassen wir dies leer.
- onSelectedChanged: Basierend auf dem aktuellen Zustand der RecyclerView und ob sie gedrückt oder gewischt wird, wird diese Methode ausgelöst. Hier können wir die RecyclerView-Zeile anpassen, z. B. die Hintergrundfarbe ändern.
- clearView: Diese Methode wird ausgelöst, wenn die Benutzerinteraktion mit der RecyclerView-Zeile endet.
Passende Infrastruktur bei centron
Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →
Code
Der Code für das activity_main.xml-Layout, das nur eine RecyclerView enthält, lautet wie folgt:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
</LinearLayout>Der Code für die MainActivity.java lautet wie folgt:
package com.journaldev.androidrecyclerviewdraganddrop;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerViewAdapter mAdapter;
ArrayList stringArrayList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
populateRecyclerView();
}
private void populateRecyclerView() {
stringArrayList.add("Item 1");
stringArrayList.add("Item 2");
stringArrayList.add("Item 3");
stringArrayList.add("Item 4");
stringArrayList.add("Item 5");
stringArrayList.add("Item 6");
stringArrayList.add("Item 7");
stringArrayList.add("Item 8");
stringArrayList.add("Item 9");
stringArrayList.add("Item 10");
mAdapter = new RecyclerViewAdapter(stringArrayList);
ItemTouchHelper.Callback callback = new ItemMoveCallback(mAdapter);
ItemTouchHelper touchHelper = new ItemTouchHelper(callback);
touchHelper.attachToRecyclerView(recyclerView);
recyclerView.setAdapter(mAdapter);
}
}Ergebnis
Das Tutorial führt Sie durch den Prozess der Implementierung von Drag-and-Drop in einer RecyclerView. Es umfasst den Aufbau des Layouts, die Implementierung des Codes und zeigt das Ergebnis der Anwendung.
Fazit
Die Implementierung von Drag-and-Drop in einer RecyclerView kann eine nützliche Funktion für Benutzerinteraktionen in Android-Anwendungen sein. Es eröffnet Möglichkeiten für eine benutzerfreundlichere Erfahrung. Weitere Anpassungen und Funktionen können entsprechend den Anforderungen der Anwendung hinzugefügt werden.
Viel Spaß beim Entwickeln Ihrer Android-Anwendung mit Drag-and-Drop in RecyclerView!
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.