一、demo功能
listview 列表倒计时,类似商品抢购列表
二、代码介绍
1.功能
实现每个item 倒计时功能,不会因为复用产生错位,以及数据的错乱,解决了图片每次刷新时闪烁问题
2.使用
Adapter文件:
//开启倒计时功能
public void start() {
isPlay = true;
runnable.run();
}
//关闭倒计时功能
public void stop(){
isPlay = false;
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
if (!isPlay)
return ;
handler.postDelayed(this, 1000);
notifyDataSetChanged();
}
};
每秒刷新一次导致部分手机在图片加载时出现闪烁的情况,需要进行下处理:
id设置tag,当图片加载地址相同时,这不刷新,不同时,加载图片;
if(listposter.get(position).equals(viewHolder.iv_poster.getTag(R.id.iv_poster))) {} else {
// 如果不相同,就加载。现在在这里来改变闪烁的情况 Glide.with(context).load(listposter.get(position)).diskCacheStrategy(DiskCacheStrategy.SOURCE).placeholder(R.drawable.ic_launcher).into(viewHolder.iv_poster); viewHolder.iv_poster.setTag(R.id.iv_poster,listposter.get(position));
}
主activity
加载adapter,开启倒计时
adapter = new LimitAdapter(this, listtime,listposter);
listview.setAdapter(adapter);
if (isstart){
//开启倒计时
adapter.start();
isstart=false;
}
在onPause()或者onDestroy()中,一定要记得关闭倒计时,调用stop();
3.效果图
下面附带下demo 下载地址:
http://download.csdn.net/download/shanshan_1117/10134324