1)在activity中
RecyclerView.addItemDecoration(new SpaceItemDecoration(10));
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) {
//不是第一个的格子都设一个左边和底部的间距
outRect.left = space;
outRect.bottom = space;
//由于每行都只有3个,所以第一个都是3的倍数,把左边距设为0
if (parent.getChildLayoutPosition(view) %2==0) {
outRect.right=0;
}else if(parent.getChildLayoutPosition(view) %2==1){
outRect.left = 0;
}
}
}
2)或在adapter中onBindViewHolder中
ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(NplanConfig.screenWidth / 2, NplanConfig.screenWidth /2);
if (position % 2 == 1) {
lp.setMargins(0, 0, 10, 10);
}else{
lp.setMargins(0, 0, 0, 10);
}
ViewHolder.itemView.setLayoutParams(lp);
“`