notifyItemChanged() make the RecyclerView scroll and jump to UP

RecyclerView.ItemAnimator animator = myRecyclerListView.getItemAnimator();
if (animator instanceof SimpleItemAnimator) {
    ((SimpleItemAnimator)animator).setSupportsChangeAnimations(false);
}

I don't know why, but I used:

RecyclerView.setHasFixedSize(true)

This worked for me. I hope it can help.


Looks like this is a bug: https://code.google.com/p/android/issues/detail?id=203574

The best workaround seems to be Bart's answer to set the RecyclerView's LinearLayoutManager's AutoMeasure property to false.

  LinearLayoutManager llm = new LinearLayoutManager(context);
  llm.setAutoMeasureEnabled(false);       
  recyclerView.setLayoutManager(llm);

The set FixedSize to true solution had way too many side-effects...

RecyclerView.setHasFixedSize(true)


 android:descendantFocusability="blocksDescendants"

android:descendantFocusability="blocksDescendants"

this attr solve my bug