Utworzono dynamiczny ListView, w którym obiekty są dodawane od góry.Android ListView setSelectionFromTop nie działa
Gdy użytkownik naciśnie przycisk, listView zostanie zaktualizowany z zawartości tablicy, wówczas funkcja notifyDataSetChanged() zostanie wywołana w niestandardowym tablicy arrayAdapter.
Teraz chcę mantain pozycję listy przy rozbudowie, więc dodałem ten kod:
// pausedCounter trace the number of objects(lines) to add to the listView
int idx = listView.getFirstVisiblePosition() + pausedCounter;
View first = listView.getChildAt(0);
int position = 0;
if (first != null)
position = first.getTop();
// cycle to add the new objects to the listView
for (Tweet[] tweets1 : pausedTweets)
super.updateTweets(tweets1);
listView.setSelectionFromTop(idx, position);
// reset of counter and accumulator
pausedTweets = new ArrayList<Tweet[]>();
pausedCounter = 0;
Ten kod zachowywać się w ten sposób: jeśli getFirstVisiblePosition zwraca 2, a pausedCounter wynosi 5, po aktualizacji lista zostanie ustawiona na 3 z pięciu nowych elementów.
To, czego chcę, to ustawić pierwszy widoczny element listy na 8.
Po dalszych badaniach okazało się, że liczba dzieci? ListView nie zmienia się w trakcie biegu tego kawałka kodu, więc aktualizuje rozmiar ListView po nazwałem setSelectionFromTop. Czy to może być problem?
dziękuję bardzo, z tym: listview.post (...) również listView.setSelection pracował dla mnie ponownie (nie działał w żaden inny sposób) – cV2