项目马上上线了,被细致的测试人员查看到,瀑布流商品列表顺序并不是后台返回数据,看到网上大部分解决办法:
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(); //防止第一行到顶部有空白区域
}
});
但是,我这个是商城首页,最外层就是RecyclerView,里边是各种类型布局,并且内嵌套了一列、两列、三列、瀑布流模式RecyclerView,内置的recyclerView 调用上述代码时,不会显示任何数据,所以当我思索再三,最后看到代码更新数据时:
adapter.notifyDataSetChanged();
所以想到调用:
public void setListData(List<GoodsListBean> goodsList) {
if (goodsList != null && goodsList.size() != 0) {
allGoodsList.addAll(goodsList);
adapter.notifyItemChanged(allGoodsList.size()-goodsList.size());
}
}
完美当前问题。