Я создал динамический ListView, где объекты добавляются сверху.Android ListView setSelectionFromTop не работает
Когда пользователь нажимает кнопку, 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-й.
После дальнейших испытаний я узнал, что число детей в ListView не изменяется во время запуска этого фрагмента кода, поэтому он обновляет размер ListView после я назвал setSelectionFromTop. Может быть, это проблема?
большое спасибо, с этим: listview.post (...) также listView.setSelection снова работал для меня (не работал каким-либо другим способом) – cV2