Проблема с уведомлением адаптера RecyclerView в режиме прокрутки - PullRequest
0 голосов
/ 27 мая 2020

У меня есть список элементов в Recyclerview. В приложении есть одна кнопка Switch для определенного типа данных c.

On Switch Click, я вызываю определенную службу, и новые данные устанавливаются в recyclerview.

Все это работает нормально , но когда я делаю то же самое после прокрутки recyclerview или когда мой recyclerview находится в режиме прокрутки, появляется ошибка ниже:

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{9dea1e position=24 id=-1, oldPos=-1, pLpos:-1 no parent} androidx.recyclerview.widget.RecyclerView

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Наконец, это решено с помощью следующих шагов.

Необходимо очистить предыдущие данные.

Необходимо уведомить адаптер.

Если используется разбиение на страницы, необходимо сохранить значения по умолчанию.

Выполните что-то, как показано ниже, перед новым вызовом API:

        if (mAlList != null) {
            mAlList.clear()
        }

        if(mAdapterList!=null)
        {
            mAdapterList!!.notifyDataSetChanged()
        }

        isScrolling=false
        page = 1
        limit = 20
        isLoadMore = false
0 голосов
/ 27 мая 2020
IndexOutOfBoundsException:

Для этого вам нужно добавить onClickListener с помощью интерфейса, не используйте его в onBindViewHolder, так как он создаст подобное исключение. спасибо

...