首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ListView的getCount()与getChildCount()差别【转载】

2012-08-25 
ListView的getCount()与getChildCount()区别【转载】ListView.getCount()(实际上是 AdapterView.getCount())

ListView的getCount()与getChildCount()区别【转载】

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()));  }  });

?

?

?

热点排行