code: @Override
      @SuppressWarnings("unchecked")
      public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
          if (mVerbose) Log.v(TAG, "onCreateViewHolder: " + viewType);
  
          final RecyclerView.ViewHolder holder = mOnCreateViewHolderListener.onPreCreateViewHolder(this, parent, viewType);
  
          //set the adapter
          holder.itemView.setTag(R.id.fastadapter_item_adapter, FastAdapter.this);
  
          if (mAttachDefaultListeners) {
              //handle click behavior
              EventHookUtil.attachToView(fastAdapterViewClickListener, holder, holder.itemView);
  
              //handle long click behavior
              EventHookUtil.attachToView(fastAdapterViewLongClickListener, holder, holder.itemView);
  
              //handle touch behavior
              EventHookUtil.attachToView(fastAdapterViewTouchListener, holder, holder.itemView);
          }
  
          return mOnCreateViewHolderListener.onPostCreateViewHolder(this, holder);
      }
docs: Creates the ViewHolder by the viewType
  
  @param parent   the parent view (the RecyclerView)
  @param viewType the current viewType which is bound
  @return the ViewHolder with the bound data