您的位置:首页 > 其它

[置顶] RecyclerView和StaggeredGridLayoutManager实现瀑布流向下滑动item跳动、留白的问题

2017-07-19 17:31 525 查看
由于项目需要最近第一次采用RecyclerView和StaggeredGridLayoutManager实现了瀑布流,原本以为官方的东西不会有什么问题,但是好事多磨,实现了以后上拉加载更多,都没有问题,但是下拉回显上面的item的时候出现跳动,回到最顶部的时候还会有留白。针对这个问题,网上搜索解决办法都是诸如以下三步

第一步、设置如下

staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);


第二步、添加滚动lisrener,设置如下:

staggeredGridLayoutManager.invalidateSpanAssignments();

第三步、...

在这里就不再多写,因为我用了以后问题依然存在不知道有没有设置以后解决了问题的,如果有解决了的,请留言,大家一起研究。

下面给出我的想法以及解决办法:

经过长时间的尝试和观察,我发现在没有加载更多的时候下滑是没有出现跳动和留白的,所以我把问题集中在了加载更多调用的方法上,调用的关键方法只有一个,如下:

notifyDataSetChanged();


于是乎我发现RecyclerView还有其他的加载方法,而且不推荐使用上述方法加载更多,所以我把方法更改为:

notifyItemInserted(pos);


运行项目问题解决了。以上是我解决跳动和留白问题的过程,希望对遇到该问题的同学有所帮助。(这里就不分析2个方法加载更多带来的问题了,如果想深入了解的可以关注本人博客,本人将在后面给出,谢谢)

备注一下,我用的SDK对应版本为25.3.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐