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

(转载)http://blog.csdn.net/zhq56030207/article/details/6014297

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)得到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值