我想使用帶有簡單標題的兩部分的回收站視圖。 每個部分的數據,即列表內容將來自兩個不同的web服務。 我能夠顯示頭部的第一部分。但我不知道如何在同一個RecycleView.Adapter中創建具有不同數據的第二部分。Android Recycler查看兩個部分
有人可以提出一個建議來處理這個問題嗎?
我想使用帶有簡單標題的兩部分的回收站視圖。 每個部分的數據,即列表內容將來自兩個不同的web服務。 我能夠顯示頭部的第一部分。但我不知道如何在同一個RecycleView.Adapter中創建具有不同數據的第二部分。Android Recycler查看兩個部分
有人可以提出一個建議來處理這個問題嗎?
或者您可以使用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,列表<>其中String鍵是這些部分,List是子級。 (爲什麼SortedMap?因爲它保持你的鍵排序,而不是隨機的HashMap)。
看看我在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);
希望它能幫助。
我強烈推薦SectionedRecyclerView庫。
這是我在真實應用中使用的庫。如你所見,它有頁眉,頁腳和多行內容。
感謝修改;) –