我试图用通过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;
}
其中groups
是ArrayList
传递给RecyclerViewAdapter
包含要显示在父行中的数据。
该ArrayList
包含类型的对象ParentObject
(实际上是一个类,我写它扩展ParentObject
)。 这个类中,通过的名称的方法getChildObjectList
返回一个List<ChildObject>
其中包含要显示在子-行中的数据。
题:
因此,我不能有一个getItemViewType
和整个功能RecyclerViewAdapter
我类内部延伸ParentObject
,这是(创造),并返回ArrayList
包含要显示在儿童行中的数据。
所以,我应该怎么做呢?