GridLayoutManager setSpanSizeLoo

作者: 谁帮我起个名字 | 来源:发表于2017-04-24 22:14 被阅读904次

    需求 实现一个前两列和后几列宽度不同的表格

    // 代码实现
    GridLayoutManager manager = new GridLayoutManager(this, 14);
        manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (position % 6 == 0 || position % 6 == 1) {
                    return 3;
                } else {
                    return 2;
                }
            }
        });
    

    setSpanSizeLookup 作用:一个item的跨度,也就是这个item占用了几份
    上面代码中,实现了一个6列表格,前两行宽度,和后四行的宽度比为3:2
    也就是说,表格中从左到右,每个item的宽度比是:

    3:3:2:2:2:2

    所以,我们初始化的时候,new GridLayoutManager(this, 14);将RecyclerView定义14列,

    new GridLayoutManager(this, 14);

    if (position % 6 == 0 || position % 6 == 1) {
        return 3;
    } else {
        return 2;
    }
    

    其中,上面代码实现了,前两列的item,总共占用recyclerview中14份中的3份,而后4列,每个item占用2份。

    实现效果图

    表格.jpg

    (ps:手动画的表格,比例不是太精确,忘见谅 _

    相关文章

      网友评论

        本文标题:GridLayoutManager setSpanSizeLoo

        本文链接:https://www.haomeiwen.com/subject/ayqmzttx.html