@Override
 public void onViewAttachedToWindow(BaseViewHolder holder) {
   super.onViewAttachedToWindow(holder);
   int position = holder.getLayoutPosition();
   int type = getItemViewType(position);
   if (isFullSpanType(type)) {
     ViewGroup.LayoutParams layoutParams = holder.itemView.getLayoutParams();
     if (layoutParams instanceof StaggeredGridLayoutManager.LayoutParams) {
       StaggeredGridLayoutManager.LayoutParams lp =
           (StaggeredGridLayoutManager.LayoutParams) layoutParams;
       lp.setFullSpan(true);
     }
   }
 }
  @Override
  public final void onBindViewHolder(BaseViewHolder holder, int position) {

    switch (holder.getItemViewType()) {
      case TYPE_LOADING_VIEW:
        break;
      case TYPE_HEADER_VIEW:
        break;
      case TYPE_EMPTY_VIEW:
        break;
      case TYPE_FOOTER_VIEW:
        break;
      default:
        convert((VH) holder, mData.get(holder.getLayoutPosition() - getHeaderViewCount()));
        break;
    }
  }