Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别
2016-03-28 11:02
477 查看
(转载)/article/2683617.html
特别注意:firstVisibleItem与getChildAt(int position)中的参数position的意义不同,firstVisibleItem是指在整个ListView中的位置。而getChildAt(int position)中参数position传的是当前屏幕显示区域中item的索引,屏幕中第一个item的view可以通过getChildAt(0)得到。
listView.getCount(); // 实际上是 AdapterView.getCount() // 返回的是其 Adapter.getCount() 返回的值。 // 也就是“所包含的Item总个数”。 listView.getChildCount(); // ViewGroup.getChildCount // 返回的是显示层面上的“所包含的子 View 个数”。 // 二者有什么不同?当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 返回的是当前可见的 Item 个数。 listView.setOnScrollListener(new AbsListView.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) { /**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())); } });
特别注意:firstVisibleItem与getChildAt(int position)中的参数position的意义不同,firstVisibleItem是指在整个ListView中的位置。而getChildAt(int position)中参数position传的是当前屏幕显示区域中item的索引,屏幕中第一个item的view可以通过getChildAt(0)得到。
相关文章推荐
- 初涉RxAndroid结合Glide实现多图片加载操作
- 初涉RxAndroid结合Glide实现多图片加载操作
- 自定义scrollView实现顶部图片下拉放大
- Android surfaceView 与View 的区别分析
- android自定义大括弧
- 调用系统应用选择联系人并返回联系人信息
- Binary XML file line #8: Error inflating class android.support.design.widget.NavigationView
- Android NDK R9
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
- 青云QingCloud 推出 Android 控制台 完善移动运维平台
- android软键盘右下角按键设置
- Error:(16, 26) 错误: 程序包android.annotation不存在
- android中Baseadapter的 getItem 和 getItemId 的作用和重写
- Android pendingInten 用法详解
- Android大图片裁剪终极解决方案
- Android DVM
- Android SDK、NDK、JNI的简单介绍
- android 用shape实现下划线
- android下拉弹出动画
- android studio win10系统中打开Terminal获取sha1的方法