У меня есть recyclerview с простыми элементами - элемент имеет изображение, заголовок и кнопку. Когда пользователь нажимает кнопку, ему необходимо изменить свой макет -> указать, что кнопка нажата (аналогично функциональности флажка).
Проблема в том, что когда я нажимаю кнопку, например, второй элемент, он ведет себя странно при прокрутке - переключаются несколько элементов или исходный не переключается. Вы можете проверить это на изображении здесь:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
holder.button.setOnClickListener(view -> {
toggleButtonStyle((Button)view);
});
}
public void toggleButtonStyle(Button toggle)
{
Context ctx = toggle.getContext();
if (toggle.isActivated()) {
toggle.setActivated(false);
toggle.setBackground(ContextCompat.getDrawable(ctx, R.drawable.btn_purple_corners));
toggle.setTextColor(ContextCompat.getColor(ctx, R.color.purple_light));
} else {
toggle.setActivated(true);
toggle.setBackground(ContextCompat.getDrawable(ctx, R.drawable.btn_purple));
toggle.setTextColor(ContextCompat.getColor(ctx, R.color.white));
}
}