1. 程式人生 > >RecyclerView瀑布流設定左、右、上、下的距離一樣

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