关于recyclerview的item里面有下载进度条的操作

关于recyclerview的使用比较简单,这里讲下recyclerview的item有个更新下载进度百分比的textview。我们要解决两个问题:1、这个跟新百分比的textview的局部刷新;2、recyclerview滑动时的复用问题。


先贴上recyclerview的adapter的三个重要方法:

@Override

publicRecyclerView.ViewHolderonCreateViewHolder(ViewGroup parent, intviewType) {}

创建viewholder的方法,关于viewholder的个数是一个屏幕能放下tiem总数量+2;

@Override

public voidonBindViewHolder(RecyclerView.ViewHolder holder, final intposition) {}

item条目可见时,调用此方法,我们需要给holder里面的各个view设置数据和状态;

@Override

public intgetItemCount() {}

item的总数量


先说进度条的单独刷新:我们需要拿到该条目的view,view绑定在holder上面。可通过下面这个api拿到position对应的holder

publicViewHolderfindViewHolderForAdapterPosition(intposition) {}

拿到holder后,就可以刷新对应positon的进度条了


上面进度条可以单独刷新,如果一滑动,就会看到很揪心的结果,复用错乱。不该更新的更新了,原有更新的突然没了。这个也可以理解,人家就只创建了这么多holder,我们拿到的holder鬼知道是哪个。最后想了个方法,如果我们一个item一个holder应该能解决这个复用问题(不过这样牺牲了性能)。最后通过这个方法

@Override

public intgetItemViewType(intposition) {return  position;}

这样实现一个item一个holder。(ps:这里滑动的时候,需要有一个集合储存对应id的进度,并且在绑定数据时,展示)


以上是自己的想法,写了个demo好像不错,欢迎各位留下自己的意见或者建议。

当然还有其他的方法:比如定时刷新单个item,或者干脆整个页面一起刷新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容