user5006087
user5006087

Reputation:

RecyclerView notifyDataSetChanged IllegalStateException

I wana create mobile application that uses RecyclerView with pagination that loads each time from dataBase 10 items, then when the list reaches the bottom I load 10 other items, so I used this metho to be notified if I reached the end of the list :

public boolean reachedEndOfList(int position) {
        // can check if close or exactly at the end
        return position == getItemCount() - 1;
    }

and I used this function to load items :

 @Override
    public void onBindViewHolder(Info holder, int position, List<Object> payloads) {
        if (reachedEndOfList(position)) {
            Log.d("reachedEnd", "true");
            this.autoCompletesTmp = getTmp();
            notifyDataSetChanged();
        }
    }

getTmp() update the list of items with another 10 items, but i get this exception when I reached the bottom of the list:

java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling

Upvotes: 0

Views: 1559

Answers (1)

Oliver U.
Oliver U.

Reputation: 336

I had the same problem a while ago: This helped:

Handler handler = new Handler();
                final Runnable r = new Runnable() {
                    public void run() {

                        //Do something like notifyDataSetChanged()
                    }
                };

                handler.post(r);

Upvotes: 1

Related Questions