做项目时,用到RecyclerView去加载1w张图片,为了防止OOM,需要进行分页预加载;这些完成后测试发现刷新recyclerView会造成数据错乱,在查阅资料得到一下的解决方法.

根据网上资料:

adapter.setHasStableIds(true);//相当于给ImageView加了一个tag,tag不变的话,不用重新加载图片

在adapter中,需要重写getItemViewType方法。

@Override

public int getItemViewType(int position) {

return position;

}

这样确实解决了数据错乱和更新item图片闪烁的问题,但是当我下滑加载1w张图片时发现item并没有回收,最后就OOM了.经过分析 原来是上面的修改导致的,getItemId使每个item都是一个类型,如果你要显示多类型的布局更不能这样设置了.

解决方法:

1.去掉getItemViewType和batchImportAdapter.setHasStableIds(true)后解决OOM;但是数据错乱了.

2.将刷新单个item的notifyDataSetChanged替换成notifyItemChanged(position)后解决数据错乱;但是会更新状态时图片会出现闪烁.(在更新单个item不要使用notifyDataSetChanged,它会刷新全部的item浪费资源和造成数据错乱)

3.设置RecyclerView.setItemAnimator(null);取消动画效果,解决闪烁问题.

android点赞刷新列表图片闪烁,RecyclerView使用——有效解决刷新数据错乱,图片闪烁,OOM问题...相关推荐

  1. android 点赞姓名列表,从类型和列表内容分析:APP点赞的3种方式

    原标题:从类型和列表内容分析:APP点赞的3种方式 收集了大量APP点赞列表,通过对比,主要有三种方式.三种方式都从APP的类型.点赞的列表内容量两个方向来分析. 如下图: 一.点赞列表和评论.转发. ...

  2. php获取图片宽高相反,exif_read_data()解决上传图片旋转、图片反向问题,getimagesize获取图片高度宽度相反的问题...

    PHP getimagesize 函数获取的图像宽高反了? exif_read_data()解决上传图片旋转.图片反向问题,getimagesize获取图片高度宽度相反的问题,手机图片上传之后出现了反 ...

  3. android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter

    在adapter中创建被调用方法cleckAll public class JYfkleixinAdapter extends RecyclerView.Adapter<JYfkleixinAd ...

  4. Android点赞头像列表

    http://www.jcodecraeer.com/a/opensource/2017/0630/8137.html

  5. Java 算法合并 Geoserver 切片生成指北针图片:高效、优雅解决地图数据可视化问题

    实现逻辑: 安装 Java 开发环境和 GeoTools 库.GeoTools 是一个 Java 库,可以用于处理和操作地理空间数据.可以从 GeoTools 的官网上下载最新版本的库,然后将其添加到 ...

  6. 服务器外链图片不显示,一次解决WordPress引用外部图片无法显示问题

    这几天有些事情比较忙,网站更新并不是特别的用心.有网友提到自己在使用WordPress网站的时候出现怪异的问题,在同一台服务器中两个网站.一个网站在引用新浪图床的图片没有问题,但是另外一个网站居然无法 ...

  7. 解决layui数据表格显示图片不完整

    <table class="layui-table" id="activityTable" lay-data="{height:315, url ...

  8. element ui 图片加载失败_解决Element UI - el-image 图片初始化加载失败问题

    最近使用elementUI的el-image发现经常会出现加载src失败的情况,问题估计就是e-image的src路径一旦初始化加载失败的话就没有异步刷新,(这个地方需要注意过这个问题的大佬解读下源码 ...

  9. android电脑文件列表不刷新,Android 利用RecyclerView.Adapter刷新列表中的单个view问题...

    首先使用RecyclerView的adapter继承:RecyclerView.Adapter public class OrderListAdapter extends RecyclerView.A ...

最新文章

  1. 解题报告:luoguP6685 可持久化动态仙人掌的直径问题
  2. android运动轨迹rungps_android运动轨迹rungps_Android使用百度地图API实现GPS步行轨迹...
  3. Castle IOC容器实践之TypedFactory Facility(一)
  4. 对 C++ 历史的个人观点
  5. socket编程实例_NIO之网络编程源码阅读
  6. javascript中的字符串编码、字符串方法详解
  7. Java面试之锁-公平锁和非公平锁
  8. 第4章 旋转蛇(《C和C++游戏趣味编程》配套教学视频)
  9. python 数据比对 函数_用python比对csv文件中的数据
  10. 一道求因子之和面试算法题
  11. C++求复数的角度_高考数学一轮复习33,复数,常见类型及解题策略
  12. R语言爱好者必备——R语言速查表(高清版可下载)
  13. 计算机英语 1000字论文范文,英语论文格式写作 1000字论文格式-免费论文范文
  14. Insyde uefi 隐藏设置_文颐法语:iOS 14安装后发现的9个隐藏的iPhone功能
  15. rtc芯片rx8025t在linux 3.10下的的驱动
  16. linux 主机卫士安装及使用
  17. 关于“wuauclt.exe”病毒的清理
  18. 进制转换之2进制与16进制之间的相互转换
  19. 微信小程序中的wx.navigateTo跳转路径写法
  20. android devik进程,suckit后门程序的分析 (二)

热门文章

  1. mui与java开发实例_mui开发的app例子,非常好资源,适合初学者
  2. 服务器 mysql iis 内存_windows服务器iis配置php和mysql环境图文教程
  3. 计算机系统结构安全检测,信息安全体系结构安全测评实验报告.doc
  4. Java 算法 数字分类
  5. Java 算法 寂寞的数
  6. python使用datetime获取两个时间的时间差,与时间的加减运算
  7. Markdown 添加emoji
  8. pandas日常数据处理
  9. mysql被更新失败_更新mysql出错:出错原因 You are using safe update mode
  10. docker删除mongo数据库库_Docker 搭建MongoDB环境