转自:http://stackoverflow.com/questions/28531996/android-recyclerview-gridlayoutmanager-column-spacing
RecyclerViews support the concept of ItemDecoration: special offsets and drawing around each element. As seen in this answer, you can use
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpacesItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
// Add top margin only for the first item to avoid double space between items
if(parent.getChildPosition(view) == 0)
outRect.top = space;
}
}
然后
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
int spacingInPixels = 8;
mRecyclerView.addItemDecoration(new SpacesItemDecoration(spacingInPixels));