ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)

这几天测试时发现了些可以改进的地方。

之前的方法确实能很有效的解决 :listview加载下一页时 因为图片较多异步加载的卡顿问题。

但是,发现在用手拖动ListView的时候,滚动出的item中的图片是不加载的。

 

原因是在onScrollStateChanged方法中监听,只能监听滚动状态的改变(拖动时它只执行一次),而在用手一直拖动时,系统是不回调onScrollStateChanged方法的,其中加载图片的方法自然是不会执行的!

 

为了让拖动列表时显示出来的item也加载图片,所以我添加了setOnTouchListener监听,便可完美解决这个问题:

Java代码 复制代码  收藏代码
  1. /**  
  2.          * list 触摸监听  
  3.          */  
  4.         _listView.setOnTouchListener(new OnTouchListener() {   
  5.             @Override  
  6.             public boolean onTouch(View v, MotionEvent event) {   
  7.                 // TODO Auto-generated method stub   
  8.                 if(event.getAction() == MotionEvent.ACTION_MOVE&&_scrollState!=OnScrollListener.SCROLL_STATE_FLING){   
  9.                     //这里加入加载图片的方法 和setOnScrollListener监听中的方法一样即可   
  10.                 }   
  11.                 return false;   
  12.             }   
  13.         });  
/**
		 * list 触摸监听
		 */
		_listView.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				if(event.getAction() == MotionEvent.ACTION_MOVE&&_scrollState!=OnScrollListener.SCROLL_STATE_FLING){
					//这里加入加载图片的方法 和setOnScrollListener监听中的方法一样即可
				}
				return false;
			}
		});
 要注意的是 

当你的onTouchListener返回true时,那么touch事件就被拦截了,代表你自己处理了。onListItemClick变不会执行!!

返回false的话,就不会影响。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值