Android 可扩展回收视图:如何拥有不同的;“子行”;(项目展开时显示)是否具有不同的布局?
我正在尝试使用,但我的要求是有一个可扩展的RecyclerView,不同的行有不同的布局。 因此,我首先编写了一个小示例应用程序来测试库项目现在我需要让它对不同的子行使用不同的布局-即,当用户单击列表中的某个项目(现在我们称之为父行)时,它会展开以显示其子行,如下面的屏幕截图所示 但是我需要为不同的子行使用不同的布局。我四处寻找,发现很简单很好。所以我想像示例中那样,通过扩展ViewGroup 在这种方法中,它们使用不同的视图组(每个视图组对应于行样式的布局)扩展主视图组。然后在Android 可扩展回收视图:如何拥有不同的;“子行”;(项目展开时显示)是否具有不同的布局?,android,expandablelistview,android-recyclerview,Android,Expandablelistview,Android Recyclerview,我正在尝试使用,但我的要求是有一个可扩展的RecyclerView,不同的行有不同的布局。 因此,我首先编写了一个小示例应用程序来测试库项目现在我需要让它对不同的子行使用不同的布局-即,当用户单击列表中的某个项目(现在我们称之为父行)时,它会展开以显示其子行,如下面的屏幕截图所示 但是我需要为不同的子行使用不同的布局。我四处寻找,发现很简单很好。所以我想像示例中那样,通过扩展ViewGroup 在这种方法中,它们使用不同的视图组(每个视图组对应于行样式的布局)扩展主视图组。然后在Recycle
RecyclerAdapter
的getItemViewType
中,他们根据方法中传递的位置决定返回的viewtype
,然后在onCreateViewHolder
中,根据传递的viewtype
决定要充气的布局
在我的用例中,如果是父行
我需要多个布局,那就很简单了,因为它是包含要在父行
中显示的数据的数据列表,它被传递到我们的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
是传递给RecycleServiceAdapter
的ArrayList
,其中包含要在父行中显示的数据
此ArrayList
包含类型为ParentObject
的对象(实际上是我编写的一个类,它扩展了ParentObject
)。在该类中,名为getChildObjectList
的方法返回一个List
,其中包含要在子行中显示的数据。
问题:
因此,我不能在类中拥有getItemViewType
和RecycleServiceAdapter
的全部功能,该类扩展了ParentObject
,即(创建)并返回ArrayList
,该列表包含要在子行中显示的数据。
那我该怎么做呢?