RecyclerView设置verticalSapcing等

RecyclerView没有像GridView那样有提供verticalSpacing属性,上StackOverflow找到了一种替代方法,代码如下

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
    private int mVerticalSpacing, mHorizontalSpacing;

    public SpacesItemDecoration(int verticalSpacing, int horizontalSpacing){
        mHorizontalSpacing = horizontalSpacing;
        mVerticalSpacing = verticalSpacing;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.left = mHorizontalSpacing;
        outRect.right = mHorizontalSpacing;
        outRect.bottom = mVerticalSpacing;
        outRect.top = mVerticalSpacing;
    }
}

在RecyclerView中使用

int verticalSpacing = getResources().getDimensionPixelSize(R.dimen.my_items_grid_vertical_spacing);
int horizontalSpacing = getResources().getDimensionPixelSize(R.dimen.my_items_grid_horizontal_spacing);
recyclerView.addItemDecoration(new SpacesItemDecoration(verticalSpacing, horizontalSpacing));
原文地址:https://www.cnblogs.com/baron89/p/4569657.html