Ich habe Listview mit etwas Text. Ich möchte Bilder auf Swipe-Aktion anzeigen (fast wie in Google Mail-App). Zum Beispiel, wenn ich von links nach rechts wische - mein Listenelement bewegt sich nach rechts und das Bild gleitet von links. Mein Listenelement kann nicht mehr als die Bildbreite nach rechts verschoben werden. Nach dem Wischen stoppt der Listeneintrag in die Startposition. Wie könnte ich so etwas machen? Android Listview, swipe zu Aktion
Antwort
können Sie OnFling() Ereignis Gestikdetektor verwenden. es gibt Ihnen die motionevent Punkte und Anschlagpunkte, mit denen Sie die Geste identifizieren können und eine Ansicht laden können, indem Sie Animationen von links nach rechts und von rechts nach links verwenden.
Ich konnte keine Bibliothek finden, die genau das tut, aber es ist nicht schwer, es selbst zu machen. Wie Nick darauf hingewiesen, werfen Sie einen Blick auf android-swipetodismiss, siehe SwipeDismissListViewTouchListener.java.
Zuerst müssen Sie eine benutzerdefinierte View
für Sie ListView
's Kind erstellen. Sie benötigen einen ImageView
, der von einem anderen View
überlappt wird, der den Text enthält.
Dann fügen Sie einen onTouch()
Listener zu Ihrem ListView
hinzu. Auf MotionEvent.ACTION_DOWN
(wenn Sie die Geste beginnen) Sie nehmen die Berührungskoordinaten und berechnen, welches Kind in der ListView
Sie berühren, zum Beispiel:
int[] listViewCoords = new int[2];
mListView.getLocationOnScreen(listViewCoords);
int x = (int) motionEvent.getRawX() - listViewCoords[0];
int y = (int) motionEvent.getRawY() - listViewCoords[1];
View child;
for (int i = 0; i < childCount; i++) {
child = mListView.getChildAt(i);
child.getHitRect(rect);
if (rect.contains(x, y)) {
mDownView = child;
break;
}
}
auf MotionEvent.ACTION_MOVE
Sie den Unterschied in der X messen Koordinaten zwischen dem Punkt, den Sie berührt in MotionEvent.ACTION_DOWN
und die aktuelle Koordinate:
float deltaX = motionEvent.getRawX() - mDownX;
also dann haben Sie die View
übersetzen, die den Text enthält, so dass die ImageView
enthüllt:
mDownView.setTranslationX(deltaX);
Wenn Sie Ihren Finger heben, setzen Sie einfach mDownView .setTranslationX(0)
und das Bild wird wieder abgedeckt. Dies ist nur ein Leitfaden, es gibt einige Details, die nicht abgedeckt sind, aber Sie sollten damit beginnen können.
check out this.
Dort können Sie die Listview Swipe nach rechts sehen, um die Ansichten anzuzeigen.
Snap:
main_activity.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:swipe="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.fortysevendeg.swipelistview.SwipeListView
android:id="@+id/example_swipe_lv_list"
android:listSelector="#00000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
swipe:swipeFrontView="@+id/front"
swipe:swipeBackView="@+id/back"
swipe:swipeDrawableChecked="@drawable/choice_selected"
swipe:swipeDrawableUnchecked="@drawable/choice_unselected"
swipe:swipeCloseAllItemsWhenMoveList="true"
swipe:swipeMode="both"
/>
</LinearLayout>
- 1. Telerik Listview für Android Swipe Clossing automatisch
- 2. Swipe Container nie aufhören zu aktualisieren Android
- 3. Swipe-Aktion Bindung in knockoutjs
- 4. Schlechte Ausnahme bei Swipe-Aktion Zelle Swift
- 5. ANDROID Swipe-fähige Registerkarten
- 6. Android: addHeader zu Listview
- 7. Geste in ListView Android
- 8. Android ListView Swipe nach rechts und links zu akzeptieren und ablehnen
- 9. Swipe zu aktualisieren funktioniert nicht, wenn ich Daten in listView Android habe
- 10. Items zu ListView hinzufügen - Android
- 11. Android Notification Swipe löschen deaktivieren
- 12. Android ViewPager Detect Vertikal Swipe
- 13. Android Espresso listView scrollen zu
- 14. Wie listview itemid auf eine schnelle Aktion
- 15. onClick Listener zu einem ListView Image - Android
- 16. OnClick Button Aktion in Custom ListView
- 17. Android ListView und Streichen Aktualisieren
- 18. Wie macht man Swipe-Funktion auf Listview (reaktiv-native)?
- 19. Android listView
- 20. Android Swipe Aktualisieren Layout nach oben scrollen, um zu aktualisieren
- 21. Android - Swipe View/Registerkarten nur zu einigen Fragmenten hinzufügen
- 22. Swipe-Liste Artikel in Xamarin Forms anzeigen (Android)
- 23. android ListView: scrollTo funktioniert nicht
- 24. Swipe zu Dismiss für RecyclerView
- 25. Wie Swipe-Funktionalität auf Android CardView hinzufügen?
- 26. Swipe Gesten für Android Flex + AIR App
- 27. Android benutzerdefinierte: Swipe-Toggle-Taste mit Bild
- 28. Android - So verschieben Sie ImageView auf Swipe
- 29. Swipe-Steuerelement seltsam auf Android-Gerät
- 30. android listview scrollen zu Anzahl der Listenelemente
Haben Sie jemals dieses Problem lösen? Ich möchte etwas ähnliches machen. – egfconnor
Nein, ich habe kein gut dokumentiertes Beispiel gefunden – BoredT
Ich habe meine eigene Lösung erstellt. Ich werde es bald öffnen und werde danach antworten. Es ist ein wenig anders, aber sollte sehr anpassungsfähig zu Ihrer Verwendung sein. Ich könnte es sogar in die Verwendung Ihres Anwendungsfalls einbringen. – egfconnor