Android ListView setSelectionFromTop не работает

Я создал динамический ListView, где объекты добавляются сверху.

Когда пользователь нажимает кнопку, listView обновляется из содержимого массива, тогда notifyDataSetChanged () вызывается в пользовательском массиве.

Теперь я хочу сохранить позицию списка при добавлении, поэтому я добавил этот код:

// 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; 

Этот код ведет себя следующим образом: если getFirstVisiblePosition возвращает 2, а pausedCounter – 5, после обновления список будет установлен на 3-й из пяти новых элементов.

Я хочу, чтобы первый видимый элемент списка был установлен на 8-й.

После дальнейших тестов я узнал, что количество дочерних элементов спискаView не изменяется во время выполнения этого фрагмента кода, поэтому он обновляет размер listView после вызова setSelectionFromTop . Может быть, это проблема?

Solutions Collecting From Web of "Android ListView setSelectionFromTop не работает"