2017-02-25 55 views
0

我想使用帶有簡單標題的兩部分的回收站視圖。 每個部分的數據,即列表內容將來自兩個不同的web服務。 我能夠顯示頭部的第一部分。但我不知道如何在同一個RecycleView.Adapter中創建具有不同數據的第二部分。Android Recycler查看兩個部分

有人可以提出一個建議來處理這個問題嗎?

回答

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,列表<>其中String鍵是這些部分,List是子級。 (爲什麼SortedMap?因爲它保持你的鍵排序,而不是隨機的HashMap)。

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); 

希望它能幫助。

+0

感謝修改;) –

0

我強烈推薦SectionedRecyclerView庫。

  1. 它支持頁眉和頁腳。
  2. 它支持不同的狀態,喜歡LOADING,LOADED,EMPTY,...所以,當你等待web服務響應時,只需將Section狀態切換到LOADING,就可以輕鬆顯示進度條。數據準備就緒後,您可以切換到LOADED狀態。
  3. 該庫附帶廣泛的單元測試以確保其代碼質量。

這是我在真實應用中使用的庫。如你所見,它有頁眉,頁腳和多行內容。

enter image description here