使用RecyclerView設(shè)置間距逼纸,需要重寫(xiě)RecyclerView.ItemDecoration這個(gè)類(lèi)骗村。有如下的效果圖需要實(shí)現(xiàn),間距只有中間的格子和底部的格式之間有蜓席。
實(shí)現(xiàn)方法很簡(jiǎn)單,因?yàn)檫@個(gè)效果是每一行有3個(gè)格子吏垮,只要每行的第一個(gè)格式左邊間距為0即可以铺根。其他都設(shè)置左邊距和底部距離宪躯。
代碼如下:
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) {
//不是第一個(gè)的格子都設(shè)一個(gè)左邊和底部的間距
outRect.left = space;
outRect.bottom = space;
//由于每行都只有3個(gè),所以第一個(gè)都是3的倍數(shù)位迂,把左邊距設(shè)為0
if (parent.getChildLayoutPosition(view) %3==0) {
outRect.left = 0;
}
}
}