title: Recyclerview duplicated items on scroll
body: <p>It seems like this is a pretty common question, but none of the other questions helped me on figuring this out. So, the problem is, I have a recyclerview that is duplicating the items when i scroll. Like this:
  <a href="http://i.stack.imgur.com/9iLbQ.png" rel="noreferrer">duplicated items.</a></p>
  
  <p>It looks like there's a fixed list below the scrollable list.
  Here's my Adapter:</p>
  
  <pre><code>public class FriendsListAdapter extends   RecyclerView.Adapter&lt;FriendsListAdapter.ViewHolder&gt; {
      private ArrayList&lt;Friend&gt; mDataset;
      private Context ctx;
  
      public class ViewHolder extends RecyclerView.ViewHolder {
  
          public TextView friendName;
          public ImageView friendPicture;
  
          public ViewHolder(View v) {
              super(v);
              friendName = (TextView) v.findViewById(R.id.friendName);
              friendPicture = (ImageView) v.findViewById(R.id.friendPicture);
          }
      }
  
      public FriendsListAdapter(ArrayList&lt;Friend&gt; myDataset, Context context) {
          mDataset = myDataset;
          ctx = context;
      }
  
      @Override
      public FriendsListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,    int viewType) {
          View v =   LayoutInflater.from(parent.getContext()).inflate(R.layout.friend_item,   parent, false);
          ViewHolder vh = new ViewHolder(v);
          return vh;
      }
  
  
      @Override
      public void onBindViewHolder(ViewHolder holder, int position) {
          holder.friendName.setText(mDataset.get(position).getName());
          holder.friendName.setTag(mDataset.get(position));
  
  //
  //        if(mDataset.get(position).getImageUrl() != null &amp;&amp;    !mDataset.get(position).getImageUrl().isEmpty()) {
  //            holder.friendPicture.setImageBitmap(null);
  //
  //            Transformation transformation = new       RoundedTransformationBuilder()
  //                    .cornerRadiusDp(50)
  //                    .oval(false)
  //                    .build();
  //
  //            Picasso.with(ctx)
  //                    .load(mDataset.get(position).getImageUrl())
  //                    .fit()
  //                    .transform(transformation)
  //                    .into(holder.friendPicture);
  //        }
  
      }
  
      // Return the size of your dataset (invoked by the layout manager)
      @Override
      public int getItemCount() {
          return mDataset.size();
      }
  
  }
  </code></pre>
  
  <p>The picasso part is commented because I was testing to see if that was the problem.</p>
  
  <p>Here's my fragment's onCreateView:</p>
  
  <pre><code>@Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
  
      super.onCreateView(inflater, container, savedInstanceState);
  
      View view = inflater.inflate(R.layout.fragment_friends_list, container, false);
      mRecyclerView = (RecyclerView) view.findViewById(R.id.my_recycler_view);
      mLayoutManager = new LinearLayoutManager(getActivity());
      mRecyclerView.setLayoutManager(mLayoutManager);
      mDataset = new ArrayList&lt;&gt;();
  
      final ArrayList&lt;String&gt; values = new ArrayList&lt;String&gt;();
  
      if(MyApp.getConfigHelper().getFriends() == null || MyApp.getConfigHelper().getFriends().isEmpty()) {
          Bundle params = new Bundle();
          params.putString("fields", "id, name, picture");
  
          GraphRequest request = GraphRequest.newMyFriendsRequest(
                  AccessToken.getCurrentAccessToken(),
                  new GraphRequest.GraphJSONArrayCallback() {
                      @Override
                      public void onCompleted(JSONArray array, GraphResponse response) {
                          FacebookRequestError error = response.getError();
                          if (error == null) {
                              try {
                                  Friend pictureByName;
                                  for (int i = 0; i &lt; array.length(); i++) {
                                      values.add(array.getJSONObject(i).getString("name"));
                                      JSONObject arrayObject = array.getJSONObject(i);
                                      JSONObject picObject = arrayObject.getJSONObject("picture");
                                      String fbId = arrayObject.getString("id");
                                      String picUrl = picObject.getJSONObject("data").getString("url");
                                      pictureByName = new Friend(fbId, values.get(i), picUrl);
                                      mDataset.add(pictureByName);
                                  }
  
                                  Collections.sort(mDataset);
                                  MyApp.getConfigHelper().setFriends(mDataset);
  
                                  mAdapter = new FriendsListAdapter(mDataset, getActivity());
                                  mRecyclerView.setAdapter(mAdapter);
  
                              } catch (JSONException e) {
  
                              }
                          }
  
                      }
                  });
          request.setParameters(params);
          request.executeAsync();
      } else {
          mDataset = MyApp.getConfigHelper().getFriends();
          mAdapter = new FriendsListAdapter(mDataset, getActivity());
          mRecyclerView.setAdapter(mAdapter);
      }
      return view;
  }
  </code></pre>
  
  <p>An this is the frament:</p>
  
  <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:layout_height="match_parent"
      tools:context="com.myApp.Activity.FriendsListActivity"&gt;
  
  
  &lt;android.support.v7.widget.RecyclerView
      android:id="@+id/my_recycler_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:scrollbars="vertical" /&gt;
  
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>Do you guys have any idea of what's happening?</p>