扩展RecyclerView:如何有不同的“子行”(这显示,当一个项目已展开。)有不同的布局?(Ex

2019-10-24 02:28发布

我试图用通过dgreenhalgh创建一个可扩展RecyclerView该库项目 , 但我的要求是有不同的行不同的布局扩展 RecyclerView。

所以我先写了一个小示例应用程序测试库项目。 我在这里张贴。 现在我需要它使用不同的布局,为不同的孩子-行 -即当用户点击列表中的一个项目(我们称之为父行现在),它被展开,以显示其子,行,像下面的截图。

但是,我需要为不同的孩子 -rows不同的布局。 我搜索了四周,发现这个例子的“多个Viewtype RecyclerView”很简单,美观大方。 所以,我想这样做,比如上例中,即通过扩展的ViewGroup ...

在这种方法中 ,它们延伸以不同ViewGroups(每一个对应于一排式的布局)的主ViewGroup中。 然后在getItemViewType中的RecyclerAdapter ,他们决定什么viewtype根据该返回position的方法传递,然后在onCreateViewHolder ,决定膨胀基础上,其布局viewtype通过。

在我的使用情况,这本来是简单的,如果它是parent-rows ,我所需要的多种版面 ,因为它是一个包含数据的显示数据一览parent-rows被传递到我们的ExpandableRecyclerAdapter 。 因此,在我们getItemViewType ,我们可以这样做

@Override
public int getItemViewType ( int position ) {
    int viewType;
    if ( groups.get ( position ).getImagePath () != null ) { //****groups is the list containing the data to be displayed in the recyclerview's "parent" items
        ...
    } else {
        ...
    }
    return viewType;
}

其中groupsArrayList传递给RecyclerViewAdapter包含要显示在父行中的数据。

ArrayList包含类型的对象ParentObject (实际上是一个类,我写它扩展ParentObject )。 这个类中,通过的名称的方法getChildObjectList返回一个List<ChildObject>其中包含要显示在子-行中的数据。

题:

因此,我不能有一个getItemViewType和整个功能RecyclerViewAdapter我类内部延伸ParentObject ,这是(创造),并返回ArrayList包含要显示在儿童行中的数据。

所以,我应该怎么做呢?

文章来源: Expandable RecyclerView: How to have different “child-rows” (which are displayed when an item is expanded) have different layouts?