我正在尝试使用this library project by dgreenhalgh for creating an expandable RecyclerView,,但我的要求是使用不同行的不同布局可扩展 RecyclerView 。
所以我首先编写了一个小的示例应用程序来测试库项目。 I am posting it here. 现在我需要让它为不同的 children-rows 使用不同的布局 - 即当用户点击某个项目时列表(现在让我们称之为父行),它会展开以显示其子行,如下面的屏幕截图所示。
但我需要为不同的 child -rows提供不同的布局。我四处搜寻,发现this example for "RecyclerView with Multiple Viewtype" 很简单,很好。所以我想在示例中这样做,即扩展ViewGroup ...
在此方法中,它们使用不同的ViewGroup扩展主ViewGroup(每个ViewGroup对应一个行样式的布局)。然后在getItemViewType
的{{1}}中,他们根据方法中传递的RecyclerAdapter
决定要返回的viewtype
,然后在position
中确定哪个布局根据{{1}}传递来充气。
在我的用例中,如果我需要<{strong>的多个布局onCreateViewHolder
,那将是直截了当的,因为它是包含要显示的数据的数据列表在传递给viewtype
的{{1}}中。因此,在parent-rows
中,我们可以执行类似
parent-rows
其中ExpandableRecyclerAdapter
是传递给getItemViewType
的{{1}},其中包含要在父行中显示的数据。
此@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
,这是(创建)并返回{{1}其中包含要在子行中显示的数据。
那我应该怎么做呢?