Если вы просто позвоните setSelection()
, ваш элемент будет отображаться в неестественно . Например, если ваш элемент виден в «середине» экрана и его положение равно 8. Когда вы добавляете избранное , обновляете данные , setSelection (8) будет отображать элемент в верхней части экрана (точнее в середине).
Так вот почему я использую OnScrollListener
, чтобы получить firstVisibleItem
, и использую это значение для установки позиции. Это заставляет элемент отображаться естественно. Это функция:
public void onScroll(AbsListView view, int firstVisibleItem, int VisibleItemCount, int totalItemCount){}
Я думаю, что это часто случается со всеми, кто обновляет данные в ListView
. И я надеюсь, что кто-то может поделиться опытом в этой проблеме.