RecyclerView流式布局StaggeredGridLayoutManager,重排序问题

本文探讨了在RecyclerView使用StaggeredGridLayoutManager时,由于图片异步加载导致的布局重排序问题。解决方案包括在图片加载前确定尺寸以避免滑动时的动画效果,以及一开始就设置好图片尺寸以确保正确对齐。然而,完全避免重排的最稳妥方法是在bindHolder时已知图片尺寸。
摘要由CSDN通过智能技术生成

RecyclerView天然支持流式布局,只需要设置layoutManager为StaggeredGridLayoutManager,不过如果item中有图片,由于图片异步加载,会导致item布局变化,这倒也没什么,关键是在holder复用的过程中,由于图片异步加载,原先的图片尺寸与即将要加载的图片尺寸不一样,就导致上下滑动的时候,因为item默认是按照哪边有空缺,就先填充哪边,比如原本的顺序如下:
瀑布流加载图片
假如加载item10开始复用holder,则下一屏复用后如下,注意,此时图片都未加载完成
第二屏图片加载出来前
第二屏的状态下还未复服用holder8和holder9,
假设下图未图片加载完成后的状态,注意,图片加载完成后只会改变holder高度,不会重排序
第二屏图片加载完成后
现在假设我们再往回滑动,可以肯定的是,不管图片有没有缓存,滑动回顶部的时候,顶部holder一定是无法对其的。下图未滑动回顶部时holder加载状态及图片加载完成后item状态如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值