@Override
 public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
   if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
     ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
     itemViewHolder.onItemSelected();
   }
   super.onSelectedChanged(viewHolder, actionState);
 }
 @Override
 public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
   if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) {
     mAdapter.onItemDragStart(viewHolder);
     viewHolder.itemView.setTag(R.id.BaseQuickAdapter_dragging_support, true);
   } else if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
     mAdapter.onItemSwipeStart(viewHolder);
     viewHolder.itemView.setTag(R.id.BaseQuickAdapter_swiping_support, true);
   }
   super.onSelectedChanged(viewHolder, actionState);
 }
  @Override
  public void onSelectedChanged(final RecyclerView.ViewHolder viewHolder, final int actionState) {

    // We only want the active item to change
    if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
      if (viewHolder instanceof ItemTouchHelperViewHolder) {

        // Let the view holder know that this item is being moved or dragged
        ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
        itemViewHolder.onItemSelected();
      }
    }

    super.onSelectedChanged(viewHolder, actionState);
  }