`
ET焖猪仔
  • 浏览: 236984 次
  • 性别: 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

相关推荐

    移动列表插件Editable Listview.rar

    移动列表插件Editable Listview.rar 移动列表插件Editable Listview.rar 移动列表插件Editable Listview.rar 移动列表插件Editable Listview.rar 移动列表插件Editable Listview.rar 移动列表插件Editable Listview....

    Android应用源码之listView_listView.zip

    在Android应用开发中,ListView是十分常见且重要的组件,它用于显示一列可滚动的数据项。这份"Android应用源码之listView_listView.zip"压缩包很可能是包含了一个示例项目,展示了如何在Android应用程序中使用...

    Android-listview.zip

    在这个"Android-listview.zip"项目中,开发者将学习如何在Android Studio环境下创建数据库,存储数据,并将这些数据(包括图片和文字)加载到ListView中,以提供用户友好的界面。 首先,我们需要了解如何在Android ...

    android多选ListView示例

    在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。它允许用户滚动查看内容,同时提供了多种交互方式,如点击、长按等。在本示例中,我们将探讨如何实现一个支持多选功能的ListView,即"android...

    ListView.7z

    ListView是Windows Forms和Android开发中常见的一种用户界面组件,用于展示可滚动的列表数据。在本文中,我们将深入探讨ListView的使用、功能及其在不同平台上的实现方式。 **Windows Forms中的ListView** 在...

    安卓Android源码——listView.rar

    这份"安卓Android源码——listView.rar"压缩包很可能包含了一份关于ListView自定义实现和优化的源代码示例。下面我们将深入探讨ListView在Android中的工作原理、常见用法以及如何进行性能优化。 首先,ListView基于...

    android控件ListView. GridView.gallery应用

    ListView添加数据源,SimpleAdapter 重点是ListView事件处理,OnItemClickListener 如果和上下文菜单关联,点上下文菜单去操作item项 要在OnContextItemSelected方法里面得到 AdapterMenuInfo的对象,才能得到你选择...

    android-custom-listview.7z

    在Android开发中,自定义ListView是一项常见的任务,它允许开发者根据特定需求定制列表项的布局、样式和交互。"android-custom-listview.7z"这个压缩包文件很可能包含了一个示例项目,展示了如何在Android应用中实现...

    android自定义ListView控件实现下拉刷新、分页加载、item点击

    在Android开发中,ListView是常用的一种视图组件,用于展示多行数据列表。然而,为了提供更好的用户体验,我们经常需要对ListView进行自定义,添加一些高级功能,如下拉刷新、分页加载以及Item点击事件处理。这篇...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下...

    Android 实现ListView滚动到底部自动加载数据

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。当用户滚动到ListView的底部时,自动加载更多数据的功能通常被称为“无限滚动”或“下拉加载更多”。这种功能可以提升用户体验,避免用户手动...

    老二牛车AndroidUI之ListView.ppt

    老二牛车教育程矢 AndroidUI之ListView.ppt

    Android中ListView添加头部

    在Android应用开发中,ListView是一种常用的控件,用于展示大量数据列表。它的可滚动特性使得它在各种场景下都非常实用,比如展示联系人、菜单项等。然而,仅仅使用ListView来展示列表数据并不足够,很多时候我们...

    程矢AndroidUI之ListView.rar

    【Android UI设计与ListView详解】 在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据的列表形式,常用于应用中的菜单、联系人列表等场景。本资料主要围绕程矢老师的Android UI教学内容,详细...

    Android_ListView分页

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。由于一次性加载所有数据可能会消耗大量内存并导致应用性能下降,因此通常会采用分页加载(Pagination)的方式来优化用户体验。本篇文章将深入...

    Android之ListView列表视图和界面跳转实现

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。它具有高度可定制性,能够实现各种自定义布局和交互效果。本教程将深入讲解如何实现一个基本的ListView,并在用户点击列表项时跳转到...

    android listview item 拖动排序

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,标准的ListView并不支持直接的拖放排序功能。为了实现这个特性,开发者通常会借助第三方库,如`DragSortListView`。在这个主题中,我们...

    Android ListView多选.rar

    ArrayAdapter是Android中一个简单的适配器,它将数据集(通常是数组或ArrayList)与ListView绑定,使数据能够正确地显示在ListView的各个列表项中。创建ArrayAdapter的基本步骤如下: 1. 创建一个数据模型类,如`...

    android-pro-listview.7z

    总结,"android-pro-listview.7z"涵盖了ListView的各个方面,无论你是初学者还是经验丰富的开发者,都能从中获取宝贵的知识,提升对ListView的理解和使用技巧。通过深入学习,你将能够应对各种复杂的列表展示需求,...

    Android Menu和ListView 整合设计 源码

    Android Menu和ListView 整合设计 源码 package com.MyMenu; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteCursor; import android.os.Bundle; import ...

Global site tag (gtag.js) - Google Analytics