Skip to content Skip to sidebar Skip to footer

How To Get The First Visible View From An Android Listview

Is there a way to get the first visible View out of the ListView in Android? I can get the data that backs the first View in the Adapter but it seems I can't get the first View in

Solution 1:

Actually ListView items are just children of ListView. So first visible ListView item is:

listView.getChildAt(0)

Solution 2:

ListView has a function getFirstVisiblePosition so to get the first visible view, the code would be:

listView.getChildAt(listView.getFirstVisiblePosition());

Solution 3:

Indeed listView.getChildAt(listView.getFirstVisiblePosition()) gives the first visible item, BUT it could be half visible list item.

To get first completely visible list item,

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

Solution 4:

Objectitem= listView.getItemAtPosition(listView.getFirstVisiblePosition());

For first completely visible list item:

intpos = listView.getFirstVisiblePosition();
if (listView.getChildCount() > 1 && listView.getChildAt(0).getTop() < 0) pos++;
Object item = listView.getItemAtPosition(pos);

Solution 5:

You can use the following code:

for (inti=0; i <= conversationListView.getLastVisiblePosition() - conversationListView.getFirstVisiblePosition(); i++) {
        ViewlistItem= conversationListView.getChildAt(i);
}

Post a Comment for "How To Get The First Visible View From An Android Listview"