我想使用带有简单标题的两个部分的回收器视图。 每个部分数据即列表内容将来自两个不同的Web服务。 我可以用标题显示第一部分。但我不知道如何在同一个RecycleView.Adapter中创建具有不同数据的第二部分。
有人可以提出处理此问题的建议吗?
答案 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库。