Ich habe die SwipeToDeleteRV- Bibliothek geschrieben, die die Funktion zum Wischen zum Löschen und Rückgängigmachen in Recycler-Ansichten unterstützt. Es basiert auf ItemTouchHelper und ist sehr einfach zu bedienen.
Ich hoffe, es kann für jemanden hilfreich sein, der mit denselben Problemen konfrontiert ist.
Als Beispiel können Sie Ihre Recycler-Ansicht in einem XML-Layout wie gewohnt sowie einige optionale Attribute definieren:
...
xmlns:stdrv="http://schemas.android.com/apk/res-auto"
...
<io.huannguyen.swipetodeleterv.STDRecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
stdrv:border_color="@android:color/darker_gray" // specify things like border color, border width, etc.
stdrv:delete_view_background="#cccccc"
stdrv:delete_icon="@drawable/ic_archive"
stdrv:delete_icon_height="24dp"
stdrv:delete_icon_width="24dp"
stdrv:left_delete_icon_margin="32dp"
stdrv:delete_message="@string/delete_message"
stdrv:right_delete_icon_margin="32dp"
stdrv:delete_icon_color="#000000"
stdrv:has_border="true"/>
Alle stdrv-Attribute sind optional. Wenn Sie sie nicht angeben, werden die Standardwerte verwendet.
Erstellen Sie dann einen Adapter, der STDAdapter unterordnet, und rufen Sie den Superklassenkonstruktor auf. Etwas wie das:
public class SampleAdapter extends STDAdapter<String> {
public SampleAdapter(List<String> versionList) {
super(versionList);
}
}}
Stellen Sie als Nächstes sicher, dass Sie die setupSwipeToDelete
Methode aufrufen, um die Funktion zum Streichen zum Löschen einzurichten.
mRecyclerView.setupSwipeToDelete(your_adapter_instance, swipe_directions);
swipe_directions
ist die Richtung, in die Sie das Wischen von Elementen zulassen.
Beispiel:
// Get your recycler view from the XML layout
mRecyclerView = (STDRecyclerView) findViewById(R.id.recycler_view);
LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new SampleAdapter(versions);
// allow swiping in both directions (left-to-right and right-to-left)
mRecyclerView.setupSwipeToDelete(mAdapter, ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT);
Das ist es! Weitere erweiterte Einstellungen (z. B. unterschiedliche Löschmeldungen für unterschiedliche Elemente festlegen, Elemente vorübergehend und dauerhaft entfernen, ...) finden Sie auf der Projekt-Readme-Seite.