Android RecyclerView Duplicate Item When Scrolling

I know its late but hope it will help someone. Override these two methods in your adapter.

@Override
public long getItemId(int position) {
    return position;
}

@Override
public int getItemViewType(int position) {
   return position;
}

I think I'm late in here but anyway I'll suggest a way that worked good for me, maybe someone still facing problems with this..
So, I added my recyclerview inside a nestedScrollView then disabled nested scrolling for my recyclerview.

Using this method the scrolling will be detected by the nestedScrollView, and the recyclerview stopped duplicating items while scrolling.

That's my xml code:

<androidx.core.widget.NestedScrollView
     android:layout_width="match_parent"
     android:layout_height="match_parent">

     <androidx.recyclerview.widget.RecyclerView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:nestedScrollingEnabled="false"/>

</androidx.core.widget.NestedScrollView>