title: retain ripple effect during notifydatachanged in recyclerview
body: <p>I am started to modify my application to support lollipop. Basically, I have a file browser fragment with recyclerview, When the user opens this fragment he will see all the folders on his root directory, when the user will click on the folder I need to get all the subfolders + files and show them to the user using the same recyclerview with notifydatachanged. The functionality working properly the problem is when the user clicks a folder the ripple effect is not retained during notifydatachanged.</p>
  
  <p><strong>file_item.xml</strong></p>
  
  <pre><code>&lt;TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/file_name"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="?attr/selectableItemBackground"
      android:clickable="true"
      android:drawablePadding="15dp"
      android:ellipsize="marquee"
      android:focusable="true"
      android:gravity="center_vertical"
      android:minHeight="?android:attr/listPreferredItemHeight"
      android:paddingLeft="14dip"
      android:paddingRight="15dip"
      android:textAppearance="?android:attr/textAppearanceLarge"
      android:textColor="?android:attr/textColorAlertDialogListItem" /&gt;
  </code></pre>
  
  <p><strong>Recyclerview adapter:</strong></p>
  
  <pre><code>public class RecycleAdapter extends RecyclerView.Adapter&lt;RecycleAdapter.CustomViewHolder&gt;{
  
      private List&lt;Item&gt; _data;
      private Context _context;
      private IFileListener _listener;
  
      public RecycleAdapter(Context context, List&lt;Item&gt; data,IFileListener listener) {
          _data = data;
          _context = context;
          _listener = listener;
      }
  
      public void setData(List&lt;Item&gt; data)
      {
          _data = data;
          notifyDataSetChanged();
      }
  
  
      @Override
      public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
          View view = LayoutInflater.from(_context).inflate(R.layout.file_item, viewGroup,false);
  
          CustomViewHolder viewHolder = new CustomViewHolder(view);
          return viewHolder;
      }
  
      @Override
      public void onBindViewHolder(CustomViewHolder customViewHolder, int i) {
          final Item file = _data.get(i);
  
          //Setting text view title
          customViewHolder.textView.setText(file._fileName);
          customViewHolder.textView.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  _listener.onFileClickListener(file._fileName);
              }
          });
  //            customViewHolder.textView.setOnTouchListener(new View.OnTouchListener() {
  //                @Override
  //                public boolean onTouch(View v, MotionEvent event) {
  //
  //                    switch (event.getActionMasked())
  //                    {
  //                        case MotionEvent.ACTION_UP:
  //                            _listener.onFileClickListener(file._fileName);
  //                            break;
  //                    }
  //                    return false;
  //                }
  //            });
  //            customViewHolder.textView.setOnTouchListener(new View.OnTouchListener() {
  //                @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  //                @Override
  //                public boolean onTouch(View v, MotionEvent event) {
  //                    v.getBackground().setHotspot(event.getX(), event.getY());
  //
  //                    return(false);
  //                }
  //            });
  
  
          if (file._isFolder) {
              customViewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(
                      R.drawable.directory_icon, 0, 0, 0);
          } else {
              customViewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(
                      R.drawable.file_icon, 0, 0, 0);
          }
  
      }
  
      @Override
      public int getItemCount() {
          return (null != _data ? _data.size() : 0);
      }
  
  
  
      public class CustomViewHolder extends RecyclerView.ViewHolder
      {
          protected TextView textView;
  
          public CustomViewHolder(View view) {
              super(view);
              this.textView = (TextView) view.findViewById(R.id.file_name);
          }
      }
  
      public interface IFileListener
      {
          public void onFileClickListener(String file);
      }
  
  
  }
  </code></pre>