Android Recycler查看两个部分

时间:2017-02-25 06:20:08

标签: android android-recyclerview

我想使用带有简单标题的两个部分的回收器视图。 每个部分数据即列表内容将来自两个不同的Web服务。 我可以用标题显示第一部分。但我不知道如何在同一个RecycleView.Adapter中创建具有不同数据的第二部分。

有人可以提出处理此问题的建议吗?

3 个答案:

答案 0 :(得分:1)

在Github上查看我的库,可以用来轻松创建部分: RecyclerAdapter & Easy Section

mRecylerView.setLayoutManager(...);
/*create Adapter*/
RecyclerAdapter<Customer> baseAdapter = new RecyclerAdapter<>(...);
/*create sectioned adapter. the Adapter type can be RecyclerView.Adapter*/
SectionedAdapter<String, RecyclerAdapter> adapter = new SectionedAdapter<>(SectionViewHolder.class, baseAdapter);
/*add your sections*/
sectionAdapter.addSection(0/*position*/, "Title Section 1");
/*attach Adapter to RecyclerView*/
mRecylerView.setAdapter(sectionAdapter);

希望它有所帮助。

答案 1 :(得分:0)

或者您可以使用HERE中的AdvancedSectionAdapter。您需要做的就是覆盖以下六种抽象方法:

public abstract int getGroupCount();

public abstract int getChildCount(int group);

public abstract SectionVH onCreateSectionViewHolder(ViewGroup parent, int viewType);

public abstract ChildVH onCreateChildViewHolder(ViewGroup parent, int viewType);

public abstract void onBindSectionViewHolder(SectionVH holder, int position, List<Object> payloads);

public abstract void onBindChildViewHolder(ChildVH holder, int belongingGroup, int position, List<Object> payloads);

其余的照顾你。您必须指定父节getGroupCount的数量,父节点getChildCount的子节点数,然后您需要创建并绑定父节点的父节点和子节点。

您可以创建String的简单SortedMap,List&lt;&gt;其中String键是节,List是子节点。 (为什么选择SortedMap?因为它会将您的键保持排序而不是随机的HashMap)。

答案 2 :(得分:0)

我强烈推荐SectionedRecyclerView库。

  1. 它支持页眉和页脚。
  2. 它支持不同的状态,例如LOADING,LOADED,EMPTY,...因此,当您等待来自webservice的响应时,您可以通过将Section状态切换为LOADING轻松显示进度条。数据准备就绪后,您可以切换到LOADED状态。
  3. 该库附带了大量的单元测试,以确保其代码质量。
  4. 这是我在真实应用程序中使用的库。

    如您所见,它有页眉,页脚和多个内容行。

    enter image description here