Listview / RecyclerView повторно использует представления.Если в вашем списке 20 элементов и 4 видны одновременно, при прокрутке эти представления используются повторно для отображения новых видимых представлений для экономии памяти.Таким образом, если вы измените вид в позиции 5, а затем прокрутите вниз и прокрутите назад до положения 5, вид, который вы изменили в положении 5, будет отличаться от того, который вы видите после прокрутки назад вверх.Следовательно, представление изменяется
Чтобы исправить это, сохраните глобальную переменную в адаптере, которая хранит любимую позицию, а в onBindViewHolder добавьте условие, например
if(position = favPosition)
<Change to fav view>
else
<Change to Normal View>
Условие else действительно важноили несколько представлений будут иметь вид избранного