【问题标题】:Expandable RecyclerView with Grid Layout Manager as child以网格布局管理器为子级的可扩展 RecyclerView
【发布时间】:2015-09-17 20:09:18
【问题描述】:

我想要一个像可展开 ListView 一样可折叠的 RecyclerView,并且每个 paren 的子项将呈现一个 GridView 布局管理器。

有可能吗?谁能指导我如何做到这一点? 谢谢

【问题讨论】:

    标签: gridview android-recyclerview expandable recyclerview-layout


    【解决方案1】:

    有一个完整的示例 here 说明如何使用此 library 实现可扩展的 GridView。

    基本上,您使用该库将您的项目分组为部分,以便为每个部分设置一个标题,但您可以实现它yourself

    然后添加GridLayoutManager,定义每行有多少列(本例中为 2)并将标题设置为每行 2 列的跨度大小,并将子项设置为每行 1 列的跨度大小:

        GridLayoutManager glm = new GridLayoutManager(getContext(), 2);
        glm.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                switch(sectionAdapter.getSectionItemViewType(position)) {
                    case SectionedRecyclerViewAdapter.VIEW_TYPE_HEADER:
                        return 2;
                    default:
                        return 1;
                }
            }
        });
        recyclerView.setLayoutManager(glm);
    

    为了展开/折叠这些部分,请检查exampleexpanded 变量的使用。

    【讨论】:

      【解决方案2】:

      您可以使用此 example of Expandable RecyclerView 。它提供了一个可扩展的 RecyclerView,其中包含可以单独展开以在二维滚动网格中显示其子项的组项。可以选择每个网格项。

      它是这样工作的:每个 ChildViewHolder 对象从 RecyclerView 适配器接收一个数据数组以显示在网格行中。然后它将其行的布局分解为相同大小的矩形单元格。每个单元格显示一条数据。

      希望这会帮助任何寻找这个的人。

      【讨论】:

        【解决方案3】:

        您可以使用Expandable RecyclerVew,对于儿童视图,请使用其他RecyclerViewGridLayoutManager

        https://github.com/bignerdranch/expandable-recycler-view

        【讨论】: