StaggeredGridLayoutManager问题总结

4,174 阅读1分钟

最近一直在做类似商品的瀑布流,用到了StaggeredGridLayoutManager,过程中遇到的问题比较多,主要集中在空白和位置交换这些方面,下面做个简单的总结,这些都是经过多次测试可以解决问题的方案。

布局交换位置问题

StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
//防止item交换位置
staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);

动态插入或者删除导致头部空白问题

//插入单条
adapter.notifyItemInserted(int position)
//更改多条
adapter.notifyItemRangeChanged(int positionStart, int itemCount)
adapter.notifyItemRangeInserted(int positionStart, int itemCount)
adapter.notifyItemRangeRemoved(int positionStart, int itemCount)

加载多页数据之后回到头部空白

如果是动态加载图片的话,因为图片宽高不固定,所以需要接口下发宽高,然后在加载图片之前把ImageView宽高设置上去