可扩展的RecyclerView:如何拥有不同的"子行" (展开项目时显示)具有不同的布局?

时间:2015-07-23 04:16:16

标签: android expandablelistview android-recyclerview recycler-adapter

我正在尝试使用this library project by dgreenhalgh for creating an expandable RecyclerView,但我的要求是使用不同行的不同布局可扩展 RecyclerView

所以我首先编写了一个小的示例应用程序来测试库项目。 I am posting it here. 现在我需要让它为不同的 children-rows 使用不同的布局 - 即当用户点击某个项目时列表(现在让我们称之为父行),它会展开以显示其子行,如下面的屏幕截图所示。

enter image description here

但我需要为不同的 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}其中包含要在子行中显示的数据。

那我应该怎么做呢?

0 个答案:

没有答案