[置顶] RecyclerView和StaggeredGridLayoutManager实现瀑布流向下滑动item跳动、留白的问题
2017-07-19 17:31
525 查看
由于项目需要最近第一次采用RecyclerView和StaggeredGridLayoutManager实现了瀑布流,原本以为官方的东西不会有什么问题,但是好事多磨,实现了以后上拉加载更多,都没有问题,但是下拉回显上面的item的时候出现跳动,回到最顶部的时候还会有留白。针对这个问题,网上搜索解决办法都是诸如以下三步:
第一步、设置如下
第二步、添加滚动lisrener,设置如下:
第三步、...
经过长时间的尝试和观察,我发现在没有加载更多的时候下滑是没有出现跳动和留白的,所以我把问题集中在了加载更多调用的方法上,调用的关键方法只有一个,如下:
于是乎我发现RecyclerView还有其他的加载方法,而且不推荐使用上述方法加载更多,所以我把方法更改为:
运行项目问题解决了。以上是我解决跳动和留白问题的过程,希望对遇到该问题的同学有所帮助。(这里就不分析2个方法加载更多带来的问题了,如果想深入了解的可以关注本人博客,本人将在后面给出,谢谢)
备注一下,我用的SDK对应版本为25.3.1
第一步、设置如下
staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
第二步、添加滚动lisrener,设置如下:
staggeredGridLayoutManager.invalidateSpanAssignments();
第三步、...
在这里就不再多写,因为我用了以后问题依然存在,不知道有没有设置以后解决了问题的,如果有解决了的,请留言,大家一起研究。
下面给出我的想法以及解决办法:经过长时间的尝试和观察,我发现在没有加载更多的时候下滑是没有出现跳动和留白的,所以我把问题集中在了加载更多调用的方法上,调用的关键方法只有一个,如下:
notifyDataSetChanged();
于是乎我发现RecyclerView还有其他的加载方法,而且不推荐使用上述方法加载更多,所以我把方法更改为:
notifyItemInserted(pos);
运行项目问题解决了。以上是我解决跳动和留白问题的过程,希望对遇到该问题的同学有所帮助。(这里就不分析2个方法加载更多带来的问题了,如果想深入了解的可以关注本人博客,本人将在后面给出,谢谢)
备注一下,我用的SDK对应版本为25.3.1
相关文章推荐
- Android RecyclerView+StaggeredGridLayoutManager实现瀑布流图片闪烁问题
- 关于RecyclerView实现瀑布流,上下滑动时item之间互换位置的问题
- 关于RecyclerView实现瀑布流,上下滑动时item之间互换位置的问题
- 为 GridLayout 的 RecyclerView 设置 item 间距,实现所有 Item 靠边对齐,中间留白的效果
- RecyclerView实现瀑布流遇到的各种问题(item移动,加载更多图片闪烁,以及定制各种类型Header和Footer)
- RecyclerView 瀑布流的配置以及它的 StaggeredGridLayoutManager 布局管理器的使用
- RecyclerView采用StaggeredGridLayoutManager布局的瀑布流效果
- Android中Recyclerview使用13----实现瀑布流遇到的各种问题(item移动,加载更多图片闪烁,以及定制各种类型Header和Footer)
- Android RecyclerView+StaggerLayoutManager实现瀑布流单选item乱跳
- [置顶] Android LRecyclerView实现Item侧滑菜单、长按拖拽Item、滑动删除Item等功能
- RecyclerView实现侧滑删除、置顶、滑动
- 使用StaggeredGridLayoutManager实现瀑布流效果
- RecyclerView实现Item滑动加载进入动画效果
- RecyclerView的Item点击事件,增加删除Item瀑布流动画效果,长按拖动Item,RecyclerView复杂布局、实现新闻频道选择器
- RecyclerView实现条目Item拖拽排序与滑动删除
- android中用RecyclerView实现滑动删除与切换item
- 实现瀑布流功能解决view复用造成的item高度变化问题。
- 简述RecyclerView实现瀑布流并且随机自适应item的高度
- RecyclerView实现聊天界面功不能滑动到指定位置问题
- Android LRecyclerView实现Item侧滑菜单、长按拖拽Item、滑动删除Item等功能