步骤一添加双流layoutManager:
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); iRecyclerView.setLayoutManager(staggeredGridLayoutManager); staggeredGridLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE); iRecyclerView.setItemAnimator(null); iRecyclerView.setIAdapter(adapter);
步骤二实现itemDecoration(自定义StaggeredDividerItemDecoration):
iRecyclerView.addItemDecoration(new StaggeredDividerItemDecoration(mActivity, 2, DipUtil.getIntDip(10)));
public class StaggeredDividerItemDecoration extends RecyclerView.ItemDecoration { private Context context; private int spacDistance = 10;//间距 private int spanCount = 2;//列数 public StaggeredDividerItemDecoration(Context context, int spanCount, int spanceDistance) { this.context = context; this.spacDistance = spanceDistance; this.spanCount = spanCount; } @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); int spanIndex = params.getSpanIndex(); if (spanIndex % 2 == 0) { outRect.left = 0; } else { outRect.left = spanCount; } outRect.bottom = spanCount; } }