以网格布局管理器为子项的可扩展 RecyclerView

Expandable RecyclerView with Grid Layout Manager as child

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

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

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

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

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

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

希望这对任何正在寻找它的人有所帮助。

有一个完整的例子here of how implement an Expandable GridView using this library

基本上,您使用库将您的项目分组,以便每个部分都有一个 header,但您可以实现它 yourself

然后添加 GridLayoutManager,定义每行的列数(本例中为 2 列)并将 header 的跨度大小设置为每行 2 列,children 每行 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);

为了 expand/collapse 部分,请检查 exampleexpanded 变量的使用。