2020-7-24:RecyclerView使用心得
程序员文章站
2022-03-23 22:17:06
最近优化收藏界面,收藏列表适配器采用RecyclerView,由于界面卡顿及不能多个文件同时下载,所以对其进行优化。界面卡顿原因: 主要是在onBindViewHolder中进行了耗时操作,计算文件MD5值,改为在Activity中处理。不能多个文件同时下载: 文件监听器加在了Adapter文件上,这样只能监听一个item的文件进度,并展示在界面上。将文件监听器改为加在CollectHolder上,并且在onBindViewHolder方法中通过某个holder的......
最近优化收藏界面,收藏列表适配器采用RecyclerView,由于界面卡顿及不能多个文件同时下载,所以对其进行优化。
界面卡顿原因:
主要是在onBindViewHolder中进行了耗时操作,计算文件MD5值,改为在Activity中处理。
不能多个文件同时下载:
文件监听器加在了Adapter文件上,这样只能监听一个item的文件进度,并展示在界面上。将文件监听器改为加在CollectHolder上,并且在onBindViewHolder方法中通过某个holder的set方法,将filemessage信息赋给某个holder。
((CollectHolder) holder).setFileMessage(message);
注意:holder是不断复用的,因此在将filemessage信息赋给某个holder之前判断这个holder是不是已经被setMessage了,如果已经有了要移除该filemessage的监听。
这样监听文件传输时针对不同holder,拿到不同布局,从而展示多个文件下载进度。
本文地址:https://blog.csdn.net/wuhao5211314/article/details/107561244