StaggeredGridLayoutManager 瀑布流返回顶部时跳跃问题 解决办法

       使用RecyclerView搭配StaggeredGridLayoutManager实现瀑布流时,一般会在Adapter的onBindViewHolder()方法里给每一个item随机生成一个高度,使得item的排布错落有致,不死板。但是当我们下拉到底部之后,上拉的时候,每一个item又会执行一遍onBindViewHolder()方法,这时如果还是简单随机给一个高度,由于每个item的高度都与之前的高度不一致,会导致我们滑回到顶部的时候,瀑布流的几个流可能不是平齐的,StaggeredGridLayoutManager会调整排布顺序,使得几个流的顶部平齐,产生了跳跃的现象。

       解决办法,在Adapter中维护一个记录每个item高度的itemHeightList,第一次填充时随机生成高度,在第二次填充的时候,直接去itemHeightList中取得对应位置的item高度,这样,回到顶部时,几个流就是正好平齐的了。

       但是当我们的瀑布流RecycrView中有拉到底部加载更多的逻辑的时候,每次加载了新的数据,又会产生跳跃问题。

       解决办法,给Stagge

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值