删除回收器视图网格布局中的默认间距

cry*_*sis 5 android gridview android-recyclerview

我正在使用StaggeredGridLayout经理进行回收查看

mStaggerGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager
                .VERTICAL);
Run Code Online (Sandbox Code Playgroud)

现在,我想删除列和行之间的默认间距.像这张图片中的东西,但只有2列.

在此输入图像描述

小智 1

你必须考虑保证金。不是填充物。

StaggeredGridLayoutManager 为每个网格项设置默认边距“30dp”。

可以更改如下,

class StaggeredListDecoration extends RecyclerView.ItemDecoration {

    public StaggeredListDecoration() {

    }
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        BaseCard.CARD_TYPE viewType = (BaseCard.CARD_TYPE)view.getTag();
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).leftMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).rightMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).topMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).bottomMargin= 0;
    }
}
Run Code Online (Sandbox Code Playgroud)