`
marine8888
  • 浏览: 544432 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

  }

  });

 

 

 

分享到:
评论

相关推荐

    androidlistview里面使用radiobutton

    四、ListView与RadioButton的优化 1. 使用ViewHolder模式减少 findViewById 的调用,提高性能。 2. 在Adapter的getView方法中,根据position判断当前RadioButton是否应该被选中,避免因ListView的复用导致的显示问题...

    获取ListView的item中的EditText的值

    由于ListView会复用item的View,所以不能简单地通过Adapter的getCount()方法获取所有值,而应该根据ListView的实际可视高度和滚动位置来计算。以下是一个简单的示例: ```java for (int i = firstVisiblePosition; ...

    ListView功能导航界面

    - 通过`setAdapter()`方法将适配器设置到ListView上,完成数据与视图的连接。 4. **点击事件处理**: - 通过设置`OnItemClickListener`,可以监听ListView条目的点击事件,实现点击后跳转到相应功能。 - 在`...

    ListView的分组和字母导航

    自定义Adapter时,我们需要扩展BaseAdapter或者ArrayAdapter,并重写其关键方法,如`getCount()`(返回所有组的数量)、`getItem()`(返回指定位置的项)以及`getView()`(为ListView创建并返回一个View)。...

    Android ListView长按弹出CheckBox批量删除功能

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。为了增强用户体验和功能,我们经常需要在ListView上实现一些自定义操作,比如长按弹出CheckBox以实现批量删除功能。本教程将详细讲解如何在...

    可扩展的ListView和ViewPager的嵌套使用

    在Android开发中,可扩展的ListView(ExpandableListView)和ViewPager是两个常用组件,它们各自在不同的场景下发挥着重要作用。当需要在一个ListView的子项中展示更丰富的内容时,通常会采用嵌套的方式,将...

    爱华对view的理解之Android相近且易混淆的13种属性.pdf

    4. **ListView.getCount() 与 ListView.getChildCount()** - `getCount()` 返回ListView中数据项的总数,反映了Adapter中数据的数量。 - `getChildCount()` 返回ListView当前可视视图的数量,即屏幕实际显示的列表...

    Android编程记录ListView标记行状态的方法

    此外,`getChildCount()`和`getCount()`可能会返回不同的值,尤其是在列表内容很多时,前者只返回当前可视的子项数量,后者则返回所有数据项的总数。 为了避免这些问题,我们可以利用`getFirstVisiblePosition()`来...

    Android截屏截图的几种方法总结

    int itemscount = adapter.getCount(); int allitemsheight = 0; List&lt;Bitmap&gt; bmps = new ArrayList(); for (int i = 0; i ; i++) { View childView = adapter.getView(i, null, listView); childView....

    Android自定义引导玩转ViewPager的方法详解

    要使用ViewPager,我们需要创建一个PagerAdapter子类,这个Adapter类似于ListView的Adapter,它的作用是为ViewPager提供数据并管理各个页面的生命周期。 以下是使用ViewPager的基本步骤: 1. 在布局XML文件中添加...

    android精美列表效果

    2. 实现适配器:继承`BaseExpandableListAdapter`,重写必要的方法如`getGroupCount()`、`getChildCount()`、`getGroup(int groupPosition)`、`getChild(int groupPosition, int childPosition)`等,以返回数据。...

Global site tag (gtag.js) - Google Analytics