2017-06-14 17 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 
    } 
}