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 + 前后左右

参考:https://blog.csdn.net/puyacheer/article/details/70145334

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容