@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { int itemViewType = getItemViewType(position); switch (itemViewType) { case TYPE_TITLE: TitleViewHolder titleViewHolder = (TitleViewHolder) holder; if (position == 0) { titleViewHolder.bind("Top"); } else { titleViewHolder.bind("Bottom"); } break; case TYPE_ITEM: ItemViewHolder itemViewHolder = (ItemViewHolder) holder; if (position < topGridData.size() + 1) { itemViewHolder.bind(topGridData.get(position - 1)); } else { itemViewHolder.bind(bottomGridData.get(position - topGridData.size() - 2)); } break; } }