RecyclerView瀑布流设置左、右、上、下的距离一样


RecyclerVeiw本身自带有距离设置的类,如下:只需要我们继承一下即可

public class SpaceBaseItemDecoration extends RecyclerView.ItemDecoration {

    private int space;

    public SpaceBaseItemDecoration(int space) {
        this.space = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
            outRect.top = space;
            outRect.left = space;
            outRect.right = space;
            outRect.bottom = space;

    }
}

设置这个之后发现前两端的距离相等,但是中间的是两倍,这是为什呢?

因为left 和right在中间都有设置,所有中间宽


这里就要利用padding值来改变,加入需要设定的值是10dp,那么久设置前后左右的距离为space =5dp,Recyclerview的padding值也设置为5dp,那么上下左右就一直了

mRecycleView.setPadding(dimension,dimension,dimension,dimension);
SpaceBaseItemDecoration decoration = new SpaceBaseItemDecoration((int) getResources().getDimension(R.dimen.specotor_space));
mRecycleView.addItemDecoration(decoration);

在加载图片计算宽度的时候,我们就需要算出

屏幕宽度一半--减去--space *6                   两个padding + 前后左右




你可能感兴趣的:(RecyclerView瀑布流设置左、右、上、下的距离一样)