@Override
    public boolean onFailedToRecycleView(RecyclerView.ViewHolder viewHolder, int position) {
        IItem item = (IItem) viewHolder.itemView.getTag(R.id.fastadapter_item);
        if (item != null) {
            boolean recycle = item.failedToRecycle(viewHolder);
            if (viewHolder instanceof FastAdapter.ViewHolder) {
                recycle = recycle || ((FastAdapter.ViewHolder) viewHolder).failedToRecycle(item);
            }
            return recycle;
        }
        return false;
    }
@ Override public boolean onFailedToRecycleView ( RecyclerView . ViewHolder viewHolder , int position ) { IItem item = ( IItem ) viewHolder . itemView . getTag ( R . id . fastadapter_item ) ; if ( item != null ) { boolean recycle = item . failedToRecycle ( viewHolder ) ; if ( viewHolder instanceof FastAdapter . ViewHolder ) { recycle = recycle || ( ( FastAdapter . ViewHolder ) viewHolder ) . failedToRecycle ( item ) ; } return recycle ; } return false ; }
is called when the ViewHolder is in a transient state. return true if you want to reuse
that view anyways

@param viewHolder the viewHolder for the view which failed to recycle
@param position   the position of this viewHolder
@return true if we want to recycle anyways (false - it get's destroyed)