Это происходит потому, что это представление рециркуляции (поэтому представление перерабатывается по мере прокрутки и видимости подобных или непохожих палочек).
Измените объект объекта, добавив логическое значение isLiked
и установите егоtrue или false на onClick:
holder.like.setOnClickListener{
item.setIsLiked(true);
}
holder.unlike.setOnClickListener{
item.setIsLiked(false);
}
и установите видимость представления на основе этого:
holder.like.visibility=item.getIsLiked() ? View.VISIBLE : View.GONE;
holder.unlike.visibility=item.getIsLiked() ? View.GONE : View.VISIBLE;
note : setIsLiked (boolean like) и getIsLiked() могут быть разными именами, если вы используете автоматически генерируемые геттеры и сеттеры;
сделать то же самое для покупок без покупок