OnScrollListener 实现滚动加载或滚屏时不加载

引用资料地址:http://www.linuxidc.com/Linux/2012-02/54744.htm

                     http://www.linuxidc.com/Linux/2014-05/101540.htm

 OnScrollListener的相关概念

class MyScrollListener implements OnScrollListener {  
  
        @Override  
        public void onScroll(AbsListView view, int firstVisibleItem,  
                int visibleItemCount, int totalItemCount) {  
            /** 
            * firstVisibleItem 表示在当前屏幕显示的第一个listItem在整个listView里面的位置(下标从0开始) 
            * visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数 
            * totalItemCount表示ListView的ListItem总数  
            * listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem 
            * (最后ListItem要完全显示出来才算)在整个ListView的位置(下标从0开始)  
            */  
          
        }  
            
                                                                                                                                        
        @Override  
        public void onScrollStateChanged(AbsListView view, int scrollState) { 
    /**
    *scrollState有三种状态,分别是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、SCROLL_STATE_FLING
    *SCROLL_STATE_IDLE是当屏幕停止滚动时
    *SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时(The user is scrolling using touch, and their finger is still on the screen)
    *SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时(The user had previously been scrolling using touch and had performed a fling)
    */  
            Log.d("load", "onScrollStateChanged");  
        }  
    } 


一.实现滚动加载

就是在滚动时也进行加载



二.实现滚屏时不加载数据

当用户在滑动时,停止加载图片的线程,当停止滑动时,看哪几个ITEM在显示屏内,只加载这几个,其它线程保持阻止;

  1.  AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {  
  2.               
  3.             @Override  
  4.             public void onScrollStateChanged(AbsListView view, int scrollState) {  
  5.                 switch (scrollState) {  
  6.                     case AbsListView.OnScrollListener.SCROLL_STATE_FLING:  
  7.                         Log.v("msg""SCROLL_STATE_FLING----lock");  
  8.                         asyncImageLoader.lock();      
  9.                         break;  
  10.                     case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:  
  11.                         Log.v("msg""SCROLL停了---加载");  
  12.                         loadImage();      
  13.                         //loadImage();  
  14.                         break;  
  15.                     case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:  
  16.                         Log.d("msg""SCROLL_STATE_TOUCH_SCROLL----lock");  
  17.                         asyncImageLoader.lock();  
  18.                         break;  
  19.           
  20.                     default:  
  21.                         break;  
  22.                 }  
  23.                   
  24.             }  
  25.               
  26.             @Override  
  27.             public void onScroll(AbsListView view, int firstVisibleItem,  
  28.                     int visibleItemCount, int totalItemCount) {  
  29.                 // TODO Auto-generated method stub  
  30.                   
  31.             }  
  32.         };  

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值