title: Changing the Position of clicked item in RecyclerView on scroll
body: <p>On click of button when I'm scrolling the view, it changes the
   position of that clicked button. On every scroll it's showing different
   position.</p>
  
  <pre><code>  public class ProductAdapter extends
              RecyclerView.Adapter&lt;ProductAdapter.ProductViewHolder&gt; {
       Context ctx;
       ArrayList&lt;ProductDetail&gt; productList;
  
       public ProductAdapter(Context ctx, ArrayList&lt;ProductDetail&gt; productList) {
          this.ctx = ctx;
          this.productList = productList;
       }
  
       @Override
       public int getItemCount() {
          return productList.size();
       }
  
       @Override
       public void onBindViewHolder(final ProductViewHolder vHolder, int pos) {
  
          vHolder.txt_prod_name.setText(productList.get(pos).getProduct_desc());
  
          vHolder.btn_add.setOnClickListener(new OnClickListener() {
              @Override
              public void onClick(View v) {
                  vHolder.lyt_prod_qty.setVisibility(View.VISIBLE);
                  vHolder.btn_add.setVisibility(View.GONE);
              }
          });
       }
  
       @Override
       public ProductViewHolder onCreateViewHolder(ViewGroup parent, int arg1) {
  
          View view = LayoutInflater.from(parent.getContext()).inflate(
                  R.layout.activity_recycler_search_item, null);
          ProductViewHolder viewHolder = new ProductViewHolder(view);
          return viewHolder;
  
       }
       public class ProductViewHolder extends RecyclerView.ViewHolder {
          TextView txt_prod_name;
          TextView txt_delivery_type;
          TextView txt_prod_mrp;
          Spinner spn_prod_qty;
          LinearLayout list_lyt, lyt_prod_qty;
          Button btn_add;
  
          public ProductViewHolder(View itemView) {
              super(itemView);
              txt_prod_name = (TextView) itemView
                      .findViewById(R.id.txt_prod_name);
              txt_delivery_type = (TextView) itemView
                      .findViewById(R.id.txt_delivery_type);
              txt_prod_mrp = (TextView) itemView.findViewById(R.id.txt_prod_mrp);
              btn_add = (Button) itemView.findViewById(R.id.btn_add);
          lyt_prod_qty = (LinearLayout) itemView
                  .findViewById(R.id.lyt_prod_qty);
              }
          }
       }
  </code></pre>
  
  <p>On click of <code>Button</code> when I'mm scrolling the view, it changes the position of that clicked button. On every scroll it's showing different
  position. Where should I out my click logic or should refresh the adapter every time?</p>