Просмотр сбрасывается после прокрутки в RecyclerView

Я реализую множественный выбор в GridManager с помощью RecyclerView.

Вот мой код внутри адаптера

imgStamps.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {

                    //First setting up isSelected() or not

                    if (imageList.get(getAdapterPosition()).isSelected()) {
                        imageList.get(getAdapterPosition()).setSelected(false);
                    } else {
                        imageList.get(getAdapterPosition()).setSelected(true);
                    }

                   //Setting blur image on Imageview onLongclick and resting on again press.
                    if (imageList.get(getAdapterPosition()).isSelected()) {
                        mCount++;
                        imgBlurr.setVisibility(View.VISIBLE);
                    } else {
                        mCount--;
                        imgBlurr.setVisibility(View.GONE);
                    }
                    mCommunicator.clicked(mCount, getAdapterPosition());
                    return true;
                }
            });

Приведенный выше код находится внутри ViewHolder, а не onBindViewHolder.

Если я выбираю первое изображение и прокручиваю его вниз, а затем вверх, вид сбрасывается.

Можно ли указать на ошибку или поведение?

Правильно ли вы настраиваете видимость и в onBindViewHolder()? Если нет, то это твоя проблема.

Mike M. 21.12.2018 07:49
1
1
602
2

Ответы 2

RecyclerView повторно использует ваш макет. Выложите свою логику на метод onBindViewHolder.

Для получения дополнительной информации изучите этот вопрос Как правильно выделить выбранный элемент в RecyclerView?

RecyclerView будет повторно использовать представление вашего элемента при прокрутке. Чтобы управлять множественным выбором, у вас должен быть массив выбранной позиции (или выбранной модели). И onBindViewHolder, проверьте позицию в этом массиве, чтобы проверить выбранный элемент или нет. Для получения более подробной информации о реализации, пожалуйста, обратитесь к: Множественный выбор в RecyclerView?

Другие вопросы по теме