Как получить первый видимый вид из Android ListView

Есть ли способ получить первый видимый вид из списка в Android?

Я могу получить данные, которые поддерживают первый вид в адаптере, но, похоже, я не могу получить первый вид в ListView.

Я хочу изменить первый видимый вид после завершения действия прокрутки. Я знаю, что мне не следует сохранять ссылки на представление.

Фактически элементы ListView являются только дочерними элементами ListView. Итак, первый видимый элемент ListView:

listView.getChildAt(0) 

ListView имеет функцию getFirstVisiblePosition поэтому, чтобы получить первое видимое представление, код будет выглядеть следующим образом:

listView.getChildAt(listView.getFirstVisiblePosition());

Действительно listView.getChildAt(listView.getFirstVisiblePosition()) дает первый видимый элемент,
НО это может быть половина видимого элемента списка.

Чтобы получить первый полностью видимый элемент списка,

 if (listView.getChildAt(0).getTop() < 0) { int firstCompletelyVisiblePos = listView.getFirstVisiblePosition() + 1; } 

ListView.scrollBy (0, -40);

Это очень хорошо работает

Вы можете использовать следующий код:

 for (int i = 0; i <= conversationListView.getLastVisiblePosition() - conversationListView.getFirstVisiblePosition(); i++) { View listItem = conversationListView.getChildAt(i); }