Recently I upgrade my recyclerview-v7:23
to recyclerview-v7:24.2.0
. My applicaton has an endless scroll list. The error message points to the line
You could also post using the view.
recyclerView.post(new Runnable() {
public void run() {
articleAdapter.notifyItemInserted(allArticles.size() - 1);
}
});
You could also use Google Play Service's Tasks API
Tasks.call(new Callable<Void>() {
@Override
public Void call() throws Exception {
allArticles.add(null);
articleAdapter.notifyItemInserted(allArticles.size() - 1);
return null;
}
});
2 & 3. You cannot change item while it is setting (with calling onBindViewHolder). In that case you have to call notifyItemInserted at the end of current loop by calling Handler.post()
Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
articleAdapter.notifyItemInserted(allArticles.size() - 1);
}
};
handler.post(r);
I hope, it will solve your problem.
In some cases onScrollStateChanged may be enough
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
adapter.notifyDataSetChanged()
}