`
ET焖猪仔
  • 浏览: 232766 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别

阅读更多
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()));
			}
		});
分享到:
评论
2 楼 ryutaku 2014-01-09  
楼主,我专门找回原业的用户名和密码来回复你的。

view.getCount并不等同于adapter中的getCount。

对于那种动态加载的listview而言:

view.getCount是从firstVisiblePostion到lastVisiblePostion的所有item的总数。对于新加载的从未在屏幕中显示的items是未计入view.getCount的
1 楼 JavaJ2me 2011-07-25  
henhao

相关推荐

Global site tag (gtag.js) - Google Analytics