Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
@(Blog)[马克飞象|Markdown|Android]
http://blog.csdn.net/zhq56030207/article/details/6014297
由于看到此篇博文的博客的标明此博文是转载的,但又没标原始地址,所以只能把他的地址放这。
ListView.getCount()
(实际上是AdapterView.getCount()
) 返回的是其Adapter.getCount()
返回的值。也就是“所包含的 Item 总个数”。ListView.getChildCount()
(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。- 二者有什么不同?当
ListView
中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话,getChildCount()
<getCount()
其中getChildCount()
返回的是当前可见的 Item 个数。
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
/**firstVisibleItem表示在现时屏幕第一个ListItem(部分显示的ListItem也算)
在整个ListView的位置(下标从0开始)**/
Log.i("firstVisibleItem", String.valueOf(firstVisibleItem));
/**visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数**/
Log.i("visibleItemCount", String.valueOf(visibleItemCount));
/**totalItemCount表示ListView的ListItem总数**/
Log.i("totalItemCount", String.valueOf(totalItemCount));
/**listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(第一个ListItem部分显示也算)
* 在整个ListView的位置(下标从0开始)**/
Log.i("firstPosition", String.valueOf(listView.getFirstVisiblePosition()));
/**listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全显示出来才算)
* 在整个ListView的位置(下标从0开始)**/
Log.i("lasPosition", String.valueOf(listView.getLastVisiblePosition()));
}
);