2017-06-14 15 views
0

在我的情況下,我有Grid Layout Manager和自定義Decorator的回收查看。在每一行(最多有3列)可以是1到3個項目。在RecyclerView中繪製空單元

問題是如何繪製空單元格的情況下,當一行或兩行項目的計數? Warning !!!這不是lastRow

例如: Span計數在第3行,要繪製的元素集合= 2如何在第3列繪製空單元格? Span計數在第3行,要繪製的集合中的元素= 1如何繪製第2列和第3列中的空單元格?

+1

我能想到加入 '虛擬' 空數據(空),當數據爲null,繪製空場在你的適配器中。也許別人知道更好的解決方案:D – Vucko

+1

@Vucko感謝您的回覆兄弟,在我的情況下這是一個不好的選擇,所以我問這個問題尋找更奇特的解決方案。由於在谷歌搜索沒有任何結果。 –

+0

如何在這[問題]的第二個答案(https://stackoverflow.com/questions/28531996/android-recyclerview-gridlayoutmanager-column-spacing/28533234) – Vucko

回答

0

您可以通過定義不同的視圖類型來實現它。

只重載getItemViewType()

@Override 
    public int getItemViewType(int position) { 
      if (position < mElementsList.size()) { 
       return ITEM_TYPE_NORMAL; 
      } else if (position >= mElementsList.size()) { 
       return ITEM_TYPE_EMPTY; 
      } 
     } 
    } 

然後覆蓋onCreateViewHolder

onCreateViewHolder(Viewgroup parent, int viewType) { 
    if(viewType == ITEM_TYPE_NORMAL) { 
    //Use layout for normal type 
    } else if (viewType == ITEM_TYPE_EMPTY) { 
    //Use layout for emptyType 
    } 
}