RecyclerView显示分组的项目

时间:2017-09-21 06:43:53

标签: android android-recyclerview

如何创建一个水平的RecyclerView,其中元素被分组?每个组都应该有一个组名,可以直接在组的第一个元素上方看到,也可以使用它滚动。 到目前为止,我已经完成了,RecyclerView中的一个元素是一个包含一个视图的完整组,并且在该视图中存在一个包含该组元素的线性布局。问题是元素本身不会被回收,但是在创建组时总是会重新创建。

是否有更好的方法可以将组的名称置于第一组元素之上并仍然回收各个元素的视图?

RecyclerView with grpous

2 个答案:

答案 0 :(得分:0)

您可以使用expandable recyclerview进行实施,请参阅here

答案 1 :(得分:0)

使用key作为组名创建hashMap,将值作为itemList创建,如下所示

HashMap<String,List<Object>> hashMap = new LinkedHashMap<>();
List<Object> groupOneItems = new ArrayList<>();
groupOneItems.add("Item");
groupOneItems.add("Item");
groupOneItems.add("Item");
groupOneItems.add("Item");
List<Object> groupTwoItems = new ArrayList<>();
groupTwoItems.add("Item");
groupTwoItems.add("Item");
groupTwoItems.add("Item");
groupTwoItems.add("Item");
groupTwoItems.add("Item");
hashMap.put("Group1", groupOneItems);
hashMap.put("Group1", groupTwoItems);

现在将hashmap传递给RecylerView Adapter

  • 对于每个hashMap数据,将键显示为第一个项目的组名称,并将子项目显示为列表(您可以使用相同的视图或为第一个项目和下一个项目创建单独的视图)