Ich habe eine ListView
mit benutzerdefinierten Zeilen. Wenn Sie auf eine dieser Zeilen klicken, werden die ListView-Daten neu generiert. Ich möchte, dass die Liste in diesem Fall wieder nach oben rollt.
Ich habe anfangs versucht, setSelection(0)
in jeder Zeile zu verwenden OnClickListener
, um dies zu erreichen, war jedoch erfolglos (ich glaube, weil der ListView
seine Bildlaufposition verliert, wenn seine Daten ungültig werden - daher wird mein Aufruf von setSelection rückgängig gemacht. Ich verstehe immer noch nicht, wie die ListView entscheidet, wohin sie scrollen soll nach der Ungültigmachung).
Die einzige funktionierende Lösung, die mir bekannt ist, wurde von Romain Guy hier angegeben: http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
Es beinhaltet ( View.post
) den Aufruf von _listView.setSelection(0)
. Ich fand das ziemlich schlecht. Die neu generierte Liste wird mit unveränderter Bildlaufposition angezeigt, und es gibt eine erhebliche Verzögerung, bevor sie wieder nach oben scrollt.
Gibt es einen besseren Weg, um diese Funktionalität zu erreichen?
Jede Hilfe wäre sehr dankbar.
Vielen Dank!