Gmail-wie listview-Element entfernen
Ich versuche, etwas zu erreichen, mit der Gmail-app (ICS) bietet auf Nachricht löschen. Ich wan ' T alle Zeilen unterhalb der gelöschten Zelle nach oben verschieben und decken Sie gelöschte Zelle.
Hier arbeitet animation:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate android:fromYDelta="0%" android:toYDelta="-100%"
android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
Alles kam mir so weit ist:
public static List<View> getCellsBelow(ListView listView, int position) {
List<View> cells = new ArrayList<View>();
for (int i = position + 1; i <= listView.getLastVisiblePosition(); i++) {
cells.add(listView.getChildAt(i));
}
return cells;
}
Entnehme ich, sichtbaren Zellen unter dem ausgewählten Zelle und dann animieren in foreach. Ich fürchte, das ist eine performance-Katastrophe. Ich habe auch Probleme haben, Benachrichtigen adapter, es sollte neu laden, es ist Inhalt. normalerweise würde ich nennen notifyDataSetChanged
auf onAnimationEnd
aber jetzt gibt es einige Animationen spielen eine nach der anderen.
Anregungen pals? Vielleicht gibt es etwas, das animiert einige Ansichten stimulatenously?
- Ein einfachste Weg wäre, um die Höhe zu verringern, der auf die gelöschte Zeile.
- gonna Schießen mir in die Eier für nicht darüber nachzudenken, dass...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update:: ich empfehle, Check-out diese Lösung von Chet Haase, wer arbeitet an dem Android-team. Vor allem, wenn Sie nicht die Entwicklung für Android 2.3 und niedrigeren.
Dieser sollte genau das sein, was Sie wollen.
Den ursprünglichen Autor dieser veröffentlichte den code als Gist hier: https://gist.github.com/2980593
und hier ist die original-Google+ - post von Roman Nurik: https://plus.google.com/113735310430199015092/posts/Fgo1p5uWZLu
Können Sie versuchen die ListView, die ich für diesen. Es ist auf Github.