How to prevent RecyclerView item from blinking after notifyItemChanged(pos)?

RecyclerView has built in animations which usually add a nice polished effect. in your case you'll want to disable them:

((SimpleItemAnimator) mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false);

(The default recycler view animator should already be an instance of SimpleItemAnimator)


You can disable the item animations.

mRecyclerView.setItemAnimator(null);

The problem may not come from animation but from not stable id of the list item.

To use stable IDs, you need to:

- setHasStableIds(true)
In RecyclerView.Adapter, we need to set setHasStableIds(true); true means this adapter would publish a unique value as a key for item in data set. Adapter can use the key to indicate they are the same one or not after notifying data changed.

- override getItemId(int position)
Then we must override getItemId(int position), to return identified long for the item at position. We need to make sure there is no different item data with the same returned id.

The source of solution for that is here.