【RecyclerView】【Glide】列表加载多图卡顿

记录一次列表加载很多图片时卡顿的问题

现象:

仿微信朋友圈列表,多图九宫格布局,随着加载数据的增加,列表越来越卡顿,但是再次刷新之后,列表重归流畅

问题猜测及尝试解决:

1.图片缓存增多:采用图片加载栈缓存清除+预加载方案,实测效果并不理想,非本质问题

2.图片缩放处理:调用 override() 方法,对图片进行压缩,实测确实有效果,单还会有卡顿现象,增大压缩率后,卡顿现象确实有很大的优化,但是伴随的却是列表中的图片非常模糊.....

3.图片的圆角处理:在咨询了一位安卓大佬后,提出了把图片的圆角处理交给 ImageView 本身,因时间较为紧迫,所以我采用了更为极端的方式去验证,直接去除了 Glide 的圆角处理,实测本质也并不是因为圆角导致的卡顿

4.列表的复用:因为 RecyclerView 的复用不用开发者去处理,但是确实出现了卡顿的现象,所以为了验证是否是复用的问题,我采用了 ListView 的方式,最终确定是复用导致已加载的资源无法释放,最终越来越卡顿,甚至引发OOM.

问题确定:

列表的复用

解决方案:

排查xml布局,有一点引发了我的注意,我的 RecyclerView 是嵌套在 NestedScrollView 中的.....把 RecyclerView 拿到 NestedScrollView 外边,再次测试,列表仿佛吃了德芙......

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WWGtest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值