HorizontalScrollView包裹RecyclerView,使用StaggeredGridLayoutManager均分网格形成表格状列表,不固定列,每次刷新数据列位置异常错乱变动问题
问题描述:用HorizontalScrollView包裹RecyclerView,使用StaggeredGridLayoutManager均分网格形成表格状列表,由于列不固定,具体列数来自服务器,这样每次刷新数据时候,要清空RecyclerView的Adapter,重新装填数据,有可能在视野可见的列每次刷新数据时候,列位置异常错乱跑动问题。
解决方案就是写死RecyclerView的Adapter中ViewHolder中View的宽度值。这样StaggeredGridLayoutManager在切分划分纵横网格时候就会按照指定的宽度划分,就不会错乱了。否则StaggeredGridLayoutManager就要按照自己的均分原则,那么如果RecyclerView中的子Item View很多种类型,且宽度不固定,势必有些宽有些窄些,那么StaggeredGridLayoutManager的均分策略就会导致总的宽度的收缩,进而导致错乱。