检查特定位置是否在ListView中显示

时间:2018-12-24 11:41:24

标签: java android listview

我想知道列表视图中当前是否显示某个位置。假设我有20个项目的列表,由于屏幕上可能有多个项目,我该如何检查显示的项目中的第9个位置。

在我的应用程序中,我自动为用户滚动一个列表视图,因此我需要知道该位置是否已在屏幕上

1 个答案:

答案 0 :(得分:0)

您可以使用下面的代码段检查当前在列表视图中可见的特定列表位置。

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
   //Specify the list index that you want to check visibility
    int listItemIndex = 9;
    View listItem = getListView().getChildAt(listItemIndex);
    if (listItem  != null && listItem .getVisibility() == View.VISIBLE) {
     //The list item is visible
    }
}

获取所有在滚动条上可见的列表项

    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        //Loop to get tids of all completely visible List View's item scrolled on screen
        for (int listItemIndex = 0; listItemIndex<=getListView().getLastVisiblePosition()- getListView().getFirstVisiblePosition(); listItemIndex++) {
        //Specify the list index that you want to check visibility
        View listItem = getListView().getChildAt(listItemIndex);
        if (listItem  != null && listItem .getVisibility() == View.VISIBLE) {
            //The list item is visible
        }
    }
}