首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RecyclerView ItemDecoration divider剪切我的子视图

RecyclerView ItemDecoration divider剪切我的子视图
EN

Stack Overflow用户
提问于 2016-06-02 10:50:34
回答 1查看 601关注 0票数 2

我想要的分割器如下图所示:

我希望所有列的宽度相同,但间距不同。现在,我的第一列和最后一列已经被这样剪切了:

这是我的ItemDecoration

代码语言:javascript
复制
public class MoreIndexItemDividerDecoration extends RecyclerView.ItemDecoration {
    private GridLayoutManager mGridLayoutManager;
    private GridLayoutManager.SpanSizeLookup mSpanSizeLookup;
    private int mSpanCount;

    public MoreIndexItemDividerDecoration(GridLayoutManager manager, int spanCount) {
        mGridLayoutManager = manager;
        mSpanSizeLookup = mGridLayoutManager.getSpanSizeLookup();
        mSpanCount = spanCount;
    }

    @Override
    public void getItemOffsets(Rect outRect, View child, RecyclerView parent, RecyclerView.State state) {
        int pos = parent.getChildLayoutPosition(child);
        int left = 0;
        int top = 0;
        int right = 0;
        int bottom = 0;

        if (mGridLayoutManager.getItemViewType(child) == 1) {
            if (mSpanSizeLookup.getSpanIndex(pos, mSpanCount) == 0) {
                left = 50;
            } else {
                left = 5;
            }
            if (mSpanSizeLookup.getSpanIndex(pos, mSpanCount) == mSpanCount - 1) {
                right = 50;
            } else {
                right = 5;
            }
            top = 5;
            bottom = 5;
        } else {
            if (mSpanSizeLookup.getSpanGroupIndex(pos, 4) != 0) {
                top = 45;
            }
            bottom = 45;
        }

        outRect.set(left, top, right, bottom);
        HtscLog.e("child pos: " + pos + " span size: " + mSpanSizeLookup.getSpanSize(pos) + " group index: " + mSpanSizeLookup.getSpanGroupIndex(pos, 4) + " index: " + mSpanSizeLookup.getSpanIndex(pos, 4) + " view type: " + mGridLayoutManager.getItemViewType(child));
    }
}

我该如何解决这个问题呢?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-05-15 17:12:49

实际上,在getItemOffsetsoutRect参数中设置的值会占用项目的空间。

我已经实现了一个SCommonItemDecoration,它实际上解决了这个问题。

请访问:ibosong/CommonItemDecoration

较晚的答复,但对其他有相同要求的人可能会有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37581842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档