title: notifyItemChanged() make the RecyclerView scroll and jump to UP
body: <p>i have a RecycleView with an adapter that show a list of servers
  and the user must select one server.</p>
  
  <p>when i call notifyItemChanged(previousPosition) inside the onClick() method
  to make the old server unselected and the new server selected,
  that's make the RecycleView list jump to up exactly in the middle of list.</p>
  
  <p>and this problem happen just when i click on one of the last 2 or 3 servers inside the RecycleView list</p>
  
  <p>here is the code of my RecyclerView.Adapter : </p>
  
  <pre><code>public class ServerAdapter extends RecyclerView.Adapter&lt;ServerAdapter.ServerViewHolder&gt; {
  
      private List&lt;Server&gt; listServers = new ArrayList&lt;&gt;();
      private int[] icons = new int[]{R.drawable.server1,R.drawable.server2,R.drawable.server3,R.drawable.server4,R.drawable.server5,R.drawable.server6,R.drawable.offline};
      private int selected = 0;
      private int previousSelected = 0;
  
      public ServerAdapter(List&lt;Server&gt; listServers){
          this.listServers = listServers;
      }
  
      @Override
      public ServerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
          View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.server_relative_layout,parent,false);
          return new ServerViewHolder(view);
      }
  
      @Override
      public void onBindViewHolder(final ServerViewHolder holder, final int position) {
          if(position == selected){
              holder.getBackground().setSelected(true);
          }else{
              holder.getBackground().setSelected(false);
          }
          holder.getBackground().setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  if(position != selected){
                      previousSelected = selected;
                      selected = position;
                      holder.getBackground().setSelected(true);
                      notifyItemChanged(previousSelected);
                  }
              }
          });
          holder.getImageServer().setImageResource(icons[position%6]);
          holder.getTextNameServer().setText(listServers.get(position).getName());
          holder.getTextConnected().setText(listServers.get(position).getUrl());
      }
  
      @Override
      public int getItemCount() {
          return listServers.size();
      }
  
      public class ServerViewHolder extends RecyclerView.ViewHolder{
          private ImageView imageServer;
          private TextView textNameServer;
          private TextView textConnected;
          private View background;
          public ServerViewHolder(View itemView) {
              super(itemView);
              imageServer = (ImageView)itemView.findViewById(R.id.imageServer);
              textNameServer = (TextView)itemView.findViewById(R.id.textNameServer);
              textConnected = (TextView)itemView.findViewById(R.id.textConnected);
              background = itemView;
          }
  
          public ImageView getImageServer() {
              return imageServer;
          }
  
          public TextView getTextConnected() {
              return textConnected;
          }
  
          public TextView getTextNameServer() {
              return textNameServer;
          }
  
          public View getBackground() {
              return background;
          }
      }
  }
  </code></pre>
  
  <p>any solutions to solve this problem ? thanks.</p>
  
  <p>The problem happened exactly when i specify the layout height and do not let it to wrap_content</p>
  
  <pre><code>&lt;android.support.v7.widget.RecyclerView
      android:layout_width="wrap_content"
      android:layout_height="400dp"
      android:id="@+id/serverRecyclerView"
      android:layout_margin="10dp"
  /&gt;
  </code></pre>
  
  <p>or when i put it below something for expample like that : </p>
  
  <pre><code>&lt;android.support.v7.widget.RecyclerView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/serverRecyclerView"
      android:layout_margin="10dp"
      android:layout_below="@+id/image"/&gt;
  </code></pre>
  
  <p>my code exactly is : </p>
  
  <pre><code>&lt;android.support.v7.widget.RecyclerView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/serverRecyclerView"
      android:layout_margin="10dp"
      android:layout_alignTop="@+id/imageBall"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_toRightOf="@+id/camera"
      android:layout_toEndOf="@+id/camera"/&gt;
  </code></pre>