title: Expandable RecyclerView issue
body: <p>I have an recyclerview that onClick expands the item to show a description.</p>
  
  <p>It works properly expanding and collapsing but when I scroll with an expanded item some of the new items shown are expanded...</p>
  
  <p>For example I have a recycler view with 50 items. I expand the first item and scrolldown and each 10 items there is a expanded one.</p>
  
  <pre><code>public class NotificationsExpandAdapter extends RecyclerView.Adapter&lt;NotificationsExpandAdapter.NotificationsViewHolder&gt; {
  
      private ListItemClickListener mOnClickListener;
      private ArrayList&lt;SchoolNotification&gt; mNotifications;
      private HashMap&lt;String, String&gt; typeNotifications;
  
      public interface ListItemClickListener {
          void onListItemClick(SchoolNotification notification);
      }
  
      public NotificationsExpandAdapter(ArrayList&lt;SchoolNotification&gt; notifications, Resources resources) {
          mNotifications = notifications;
          typeNotifications = eventsType(resources);
      }
  
      public NotificationsExpandAdapter(ArrayList&lt;SchoolNotification&gt; notifications, Resources resources, ListItemClickListener listener) {
          mNotifications = notifications;
          mOnClickListener = listener;
          typeNotifications = eventsType(resources);
      }
  
      @Override
      public NotificationsViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
          Context context = viewGroup.getContext();
          int layoutIdForListItem = R.layout.notification_list_item_expand;
          LayoutInflater inflater = LayoutInflater.from(context);
          boolean shouldAttachToParentImmediately = false;
  
          View view = inflater.inflate(layoutIdForListItem, viewGroup, shouldAttachToParentImmediately);
          NotificationsViewHolder viewHolder = new NotificationsViewHolder(view);
  
          return viewHolder;
      }
  
      @Override
      public void onBindViewHolder(NotificationsViewHolder holder, int position) {
  
          holder.mNotificationDate.setText(formatDateDayMonth(mNotifications.get(position).getDate()));
          holder.mNotificationType.setText(typeNotifications.get(mNotifications.get(position).getType()));
          holder.mNotificationTitle.setText(mNotifications.get(position).getTitle());
          holder.mNotificationDescription.setText(mNotifications.get(position).getDescription());
          if (mNotifications.get(position).getSubject().getName() != null) {
              holder.mNotificationSubject.setText(mNotifications.get(position).getSubject().getName());
          }
      }
  
      public SchoolNotification getItem(Integer position){
          return mNotifications.get(position);
      }
  
      @Override
      public int getItemCount() {
          return mNotifications.size();
      }
  
  
      class NotificationsViewHolder extends RecyclerView.ViewHolder
              implements OnClickListener {
  
          TextView listItemNumberView;
          TextView mNotificationDate;
          TextView mNotificationType;
          TextView mNotificationSubject;
          TextView mNotificationTitle;
          TextView mNotificationDescription;
  
  
          public NotificationsViewHolder(View itemView) {
              super(itemView);
  
              mNotificationDate = (TextView) itemView.findViewById(R.id.tv_notif_date);
              mNotificationType = (TextView) itemView.findViewById(R.id.tv_notif_type);
              mNotificationSubject = (TextView) itemView.findViewById(R.id.tv_notif_subject);
              mNotificationTitle = (TextView) itemView.findViewById(R.id.tv_notif_tittle);
              mNotificationDescription = (TextView) itemView.findViewById(R.id.tv_notif_description);
              mNotificationDescription.setVisibility(View.GONE);
  
              itemView.setOnClickListener(this);
          }
  
  
          void bind(int listIndex) {
              listItemNumberView.setText(String.valueOf(listIndex));
          }
  
  
          @Override
          public void onClick(View v) {
  
  
              if(mNotificationDescription.isShown()){
                  Utils.slide_up(v.getContext(), mNotificationDescription);
                  mNotificationDescription.setVisibility(View.GONE);
              }
              else{
                  mNotificationDescription.setVisibility(View.VISIBLE);
                  Utils.slide_down(v.getContext(), mNotificationDescription);
              }
  
  
  //            mNotificationDescription.setVisibility(mNotificationDescription.isShown() ? View.GONE : View.VISIBLE);
  //            if (mOnClickListener != null){
  //                int clickedPosition = getAdapterPosition();
  //                mOnClickListener.onListItemClick(mNotifications.get(clickedPosition));
  //            }
          }
      }
  }
  </code></pre>