【问题标题】:Remove default spacing in recycler view grid layout删除回收站视图网格布局中的默认间距
【发布时间】:2016-07-04 09:35:22
【问题描述】:

我正在使用StaggeredGridLayout manager 来查看回收站

mStaggerGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager
                .VERTICAL);

现在,我想删除列和行之间的默认间距。类似于这张图片,但只有 2 列。

【问题讨论】:

标签: android gridview android-recyclerview


【解决方案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;
    }
}

【讨论】: