使用RecyclerView設(shè)置間距,需要重寫RecyclerView.ItemDecoration這個類。有如下的效果圖需要實現(xiàn),間距只有中間的格子和底部的格式之間有。

public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpaceItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
//不是第一個的格子都設(shè)一個左邊和底部的間距
outRect.left = space;
outRect.bottom = space;
//可自行設(shè)置left,top,right,bottom的間距屬性
//由于每行都只有3個,所以第一個都是3的倍數(shù),把左邊距設(shè)為0
if (parent.getChildLayoutPosition(view) %3==0) {
outRect.left = 0;
}
}
}
可以對RecyclerView進(jìn)行繼承重寫此方法
或者找到RecyclerView的實例,加入以下代碼:
int spacingInPixels = mContext.getResources().getDimensionPixelSize(R.dimen.space);
recyclerView.addItemDecoration(new SpaceItemDecoration(spacingInPixels));
R.dimen.space是values包下的資源文件,主要用于尺寸資源XML文件的使用,在這里R.dimen.space是需要自己測量的。