我当前正在使用getChildAt
方法将子行放入ListView
中。这样做的问题是,只有在将ListView
一直滚动到顶部时才能正确获取孩子。
如果我要向下滚动一点,以使第一行被隐藏并调用位置1的getChildAt
方法,它将获得ListView
中第三的视图。
有没有办法使孩子视图具有实际位置而不是在屏幕上可见的位置?因此,在上面的情况下,getChildAt
仍将返回视图(第二个孩子),即使在屏幕上不可见。
public View getViewByPosition(int pos, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}}
参考:Android -ListView获取项目视图按位置