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()));
}
});
分享到:
相关推荐
四、ListView与RadioButton的优化 1. 使用ViewHolder模式减少 findViewById 的调用,提高性能。 2. 在Adapter的getView方法中,根据position判断当前RadioButton是否应该被选中,避免因ListView的复用导致的显示问题...
由于ListView会复用item的View,所以不能简单地通过Adapter的getCount()方法获取所有值,而应该根据ListView的实际可视高度和滚动位置来计算。以下是一个简单的示例: ```java for (int i = firstVisiblePosition; ...
- 通过`setAdapter()`方法将适配器设置到ListView上,完成数据与视图的连接。 4. **点击事件处理**: - 通过设置`OnItemClickListener`,可以监听ListView条目的点击事件,实现点击后跳转到相应功能。 - 在`...
自定义Adapter时,我们需要扩展BaseAdapter或者ArrayAdapter,并重写其关键方法,如`getCount()`(返回所有组的数量)、`getItem()`(返回指定位置的项)以及`getView()`(为ListView创建并返回一个View)。...
在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。为了增强用户体验和功能,我们经常需要在ListView上实现一些自定义操作,比如长按弹出CheckBox以实现批量删除功能。本教程将详细讲解如何在...
在Android开发中,可扩展的ListView(ExpandableListView)和ViewPager是两个常用组件,它们各自在不同的场景下发挥着重要作用。当需要在一个ListView的子项中展示更丰富的内容时,通常会采用嵌套的方式,将...
4. **ListView.getCount() 与 ListView.getChildCount()** - `getCount()` 返回ListView中数据项的总数,反映了Adapter中数据的数量。 - `getChildCount()` 返回ListView当前可视视图的数量,即屏幕实际显示的列表...
此外,`getChildCount()`和`getCount()`可能会返回不同的值,尤其是在列表内容很多时,前者只返回当前可视的子项数量,后者则返回所有数据项的总数。 为了避免这些问题,我们可以利用`getFirstVisiblePosition()`来...
int itemscount = adapter.getCount(); int allitemsheight = 0; List<Bitmap> bmps = new ArrayList(); for (int i = 0; i ; i++) { View childView = adapter.getView(i, null, listView); childView....
要使用ViewPager,我们需要创建一个PagerAdapter子类,这个Adapter类似于ListView的Adapter,它的作用是为ViewPager提供数据并管理各个页面的生命周期。 以下是使用ViewPager的基本步骤: 1. 在布局XML文件中添加...
2. 实现适配器:继承`BaseExpandableListAdapter`,重写必要的方法如`getGroupCount()`、`getChildCount()`、`getGroup(int groupPosition)`、`getChild(int groupPosition, int childPosition)`等,以返回数据。...