注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

等待机遇

这个世界上没有人知道自己到底想要什么,就等着别人来告诉他们。

 
 
 

日志

 
 

局部刷新的listview  

2014-05-16 23:35:11|  分类: androidUI |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一般listview刷新数据都会导致界面全部刷新 如果遇到需要频繁刷新某一项或者某几项的某个view 例如只加载进度条时 就会导致界面卡顿或者滑动不流畅 listview采用局部刷新机制就解决了这个问题 类似网页开发的ajax

写了一个下午 附带demo 已经开源到github上了:

支持直接使用AjaxListView或者继承AbsAjaxAdapter 也支持直接使用你自己原有的自定义listview或者listAdapter

也可以单独继承并使用AbsAjaxAdapter来使你自己的listAdapter代码更简洁 继承后你的adapter只需要简单的像下面这样写 就可以完成布局:

@Override
public void setupView(int id, View v, int position, View contentView,
        ViewGroup parent) {
    // TODO Auto-generated method stub
    int progress = progresses.get(position) == 0 ? position : progresses
            .get(position);
    switch (id) {
    case R.id.test_tv:
        TextView tv = (TextView) v;
        tv.setText("test progress is " + progress + " and position is "
                + position);
        break;
    case R.id.test_pb:
        ProgressBar pb = (ProgressBar) v;
        pb.setProgress(progress);
        break;

    default:
        break;
    }
    progresses.put(position, progress);
}

项目中附带比较详细的demo

  评论这张
 
阅读(569)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017