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

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

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

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

Solutions Collecting From Web of "Как получить первый видимый вид из 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); }