背景
根据项目需求实现瀑布流的效果,当然肯定会遇到一系列问题,看了一些网上关于RecyclerView中实现瀑布流时出现的Item错位问题,有一些自己的看法。
介绍
manager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
//防止item 交换位置
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
manager.invalidateSpanAssignments(); //防止第一行到顶部有空白区域
}
});
这是网上说的最多的方法,但是有些疑问:
- 重新绘制不影响性能吗
- 写这么多代码的目的是什么呢
- 都知道是复用机制捣的鬼,为何不从源头解决问题嘞
尝试
带着这些疑问进行尝试,结果很意外!
- 布局代码