Mam ListView
z niestandardowymi rzędami. Po kliknięciu dowolnego z tych wierszy dane ListView są ponownie generowane. Chciałbym, aby w takim przypadku lista przewijała się z powrotem na górę.
Początkowo próbowałem użyć setSelection(0)
w każdym wierszu, OnClickListener
aby to osiągnąć, ale nie powiodło się (uważam, że ListView
traci pozycję przewijania, gdy jego dane są unieważnione - więc moje wywołanie setSelection jest cofane.Nadal nie rozumiem, w jaki sposób ListView decyduje, gdzie przewinąć po unieważnieniu).
Jedyne działające rozwiązanie, które znam, podał Romain Guy tutaj: http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
Obejmuje View.post
to wezwanie do _listView.setSelection(0)
. Zauważyłem, że działa to dość słabo. Nowo wygenerowana lista pojawia się z niezmienioną lokalizacją przewijania i występuje znaczne opóźnienie, zanim przewinie się z powrotem na górę.
Czy jest lepszy sposób na osiągnięcie tej funkcjonalności?
Każda pomoc byłaby bardzo mile widziana.
Dzięki!