# SimpleItemAnimator

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1  
Summary:[Inherited Constants](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#inhconstants)\|[Ctors](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#pubctors)\|[Methods](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#)  

# SimpleItemAnimator

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public


abstract
class
SimpleItemAnimator
`  
`


``

extends `[RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)`


``


`

|---|---|----------------------------------------------|
| java.lang.Object                                   |||
| ↳ | [android.support.v7.widget.RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator) ||
|   | ↳ | android.support.v7.widget.SimpleItemAnimator |

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#)Known Direct Subclasses [DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator) |--------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator) | This implementation of[RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)provides basic animations on remove, add, and move events that happen to the items in a RecyclerView. | |

<br />

*** ** * ** ***

A wrapper class for ItemAnimator that records View bounds and decides whether it should run move, change, add or remove animations. This class also replicates the original ItemAnimator API.

It uses[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)to track the bounds information of the Views. If you would like to extend this class, you can override[obtainHolderInfo()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#obtainHolderInfo())method to provide your own info class that extends[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo).

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ### Inherited constants                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#)From class` `[android.support.v7.widget.RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)` ` |-------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `int` | [FLAG_APPEARED_IN_PRE_LAYOUT](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#FLAG_APPEARED_IN_PRE_LAYOUT) This ViewHolder was not laid out but has been added to the layout in pre-layout state by the[RecyclerView.LayoutManager](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager). | | `int` | [FLAG_CHANGED](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#FLAG_CHANGED) The Item represented by this ViewHolder is updated.                                                                                                                                                                                                   | | `int` | [FLAG_INVALIDATED](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#FLAG_INVALIDATED) Adapter[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())has been called and the content represented by this ViewHolder is invalid.                      | | `int` | [FLAG_MOVED](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#FLAG_MOVED) The position of the Item represented by this ViewHolder has been changed.                                                                                                                                                                                 | | `int` | [FLAG_REMOVED](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#FLAG_REMOVED) The Item represented by this ViewHolder is removed from the adapter.                                                                                                                                                                                  | |

|                                                          ### Public constructors                                                           ||
|-----------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[SimpleItemAnimator](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#SimpleItemAnimator())`() ` |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ||
|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract boolean` | ` `[animateAdd](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAdd(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` holder) ` Called when an item is added to the RecyclerView.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ` boolean`          | ` `[animateAppearance](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAppearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when a ViewHolder is added to the layout.                                                                                                                                                                                                                                                                                                                                                                           |
| ` abstract boolean` | ` `[animateChange](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` oldHolder, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` newHolder, int fromLeft, int fromTop, int toLeft, int toTop) ` Called when an item is changed in the RecyclerView, as indicated by a call to[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))or[notifyItemRangeChanged(int, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemRangeChanged(int, int)).                                                                                                                                                                                                                                                                                                    |
| ` boolean`          | ` `[animateChange](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` oldHolder, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` newHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postInfo) ` Called by the RecyclerView when an adapter item is present both before and after the layout and RecyclerView has received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it. |
| ` boolean`          | ` `[animateDisappearance](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateDisappearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when a ViewHolder has disappeared from the layout.                                                                                                                                                                                                                                                                                                                                                            |
| ` abstract boolean` | ` `[animateMove](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateMove(android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` holder, int fromX, int fromY, int toX, int toY) ` Called when an item is moved in the RecyclerView.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ` boolean`          | ` `[animatePersistence](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animatePersistence(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postInfo) ` Called by the RecyclerView when a ViewHolder is present in both before and after the layout and RecyclerView has not received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it or a[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())call.                       |
| ` abstract boolean` | ` `[animateRemove](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateRemove(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` holder) ` Called when an item is removed from the RecyclerView.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` boolean`          | ` `[canReuseUpdatedViewHolder](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` When an item is changed, ItemAnimator can decide whether it wants to re-use the same ViewHolder for animations or RecyclerView should create a copy of the item and ItemAnimator will use both to run the animation (e.g.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` final void`       | ` `[dispatchAddFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchAddFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when an add animation is done.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ` final void`       | ` `[dispatchAddStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchAddStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when an add animation is being started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ` final void`       | ` `[dispatchChangeFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchChangeFinished(android.support.v7.widget.RecyclerView.ViewHolder, boolean))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item, boolean oldItem) ` Method to be called by subclasses when a change animation is done.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ` final void`       | ` `[dispatchChangeStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchChangeStarting(android.support.v7.widget.RecyclerView.ViewHolder, boolean))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item, boolean oldItem) ` Method to be called by subclasses when a change animation is being started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` final void`       | ` `[dispatchMoveFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchMoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when a move animation is done.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ` final void`       | ` `[dispatchMoveStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchMoveStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when a move animation is being started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` final void`       | ` `[dispatchRemoveFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchRemoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when a remove animation is done.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ` final void`       | ` `[dispatchRemoveStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchRemoveStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method to be called by subclasses when a remove animation is being started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ` boolean`          | ` `[getSupportsChangeAnimations](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#getSupportsChangeAnimations())`() ` Returns whether this ItemAnimator supports animations of change events.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` void`             | ` `[onAddFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onAddFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when an add animation has ended on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ` void`             | ` `[onAddStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onAddStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when an add animation is being started on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ` void`             | ` `[onChangeFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onChangeFinished(android.support.v7.widget.RecyclerView.ViewHolder, boolean))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item, boolean oldItem) ` Called when a change animation has ended on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ` void`             | ` `[onChangeStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onChangeStarting(android.support.v7.widget.RecyclerView.ViewHolder, boolean))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item, boolean oldItem) ` Called when a change animation is being started on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ` void`             | ` `[onMoveFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onMoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when a move animation has ended on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ` void`             | ` `[onMoveStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onMoveStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when a move animation is being started on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ` void`             | ` `[onRemoveFinished](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onRemoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when a remove animation has ended on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ` void`             | ` `[onRemoveStarting](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#onRemoveStarting(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Called when a remove animation is being started on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ` void`             | ` `[setSupportsChangeAnimations](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#setSupportsChangeAnimations(boolean))`(boolean supportsChangeAnimations) ` Sets whether this ItemAnimator supports animations of item change events.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#)From class` `[android.support.v7.widget.RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)` ` |-----------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract boolean`                                                                                                                                       | ` `[animateAppearance](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateAppearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when a ViewHolder is added to the layout.                                                                                                                                                                                                                                                                                                                                                                                       | | ` abstract boolean`                                                                                                                                       | ` `[animateChange](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` oldHolder, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` newHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when an adapter item is present both before and after the layout and RecyclerView has received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it. | | ` abstract boolean`                                                                                                                                       | ` `[animateDisappearance](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateDisappearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when a ViewHolder has disappeared from the layout.                                                                                                                                                                                                                                                                                                                                                                        | | ` abstract boolean`                                                                                                                                       | ` `[animatePersistence](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animatePersistence(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` preLayoutInfo, `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)` postLayoutInfo) ` Called by the RecyclerView when a ViewHolder is present in both before and after the layout and RecyclerView has not received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it or a[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())call.                       | | ` boolean`                                                                                                                                                | ` `[canReuseUpdatedViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder, java.util.List<java.lang.Object>))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, List<Object> payloads) ` When an item is changed, ItemAnimator can decide whether it wants to re-use the same ViewHolder for animations or RecyclerView should create a copy of the item and ItemAnimator will use both to run the animation (e.g.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` boolean`                                                                                                                                                | ` `[canReuseUpdatedViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` When an item is changed, ItemAnimator can decide whether it wants to re-use the same ViewHolder for animations or RecyclerView should create a copy of the item and ItemAnimator will use both to run the animation (e.g.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | | ` final void`                                                                                                                                             | ` `[dispatchAnimationFinished](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Method to be called by subclasses when an animation is finished.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | | ` final void`                                                                                                                                             | ` `[dispatchAnimationStarted](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationStarted(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Method to be called by subclasses when an animation is started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | | ` final void`                                                                                                                                             | ` `[dispatchAnimationsFinished](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationsFinished())`() ` This method should be called by ItemAnimator implementations to notify any listeners that all pending and active item animations are finished.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | | ` abstract void`                                                                                                                                          | ` `[endAnimation](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#endAnimation(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` item) ` Method called when an animation on a view should be ended immediately.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | | ` abstract void`                                                                                                                                          | ` `[endAnimations](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#endAnimations())`() ` Method called when all item animations should be ended immediately.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | | ` long`                                                                                                                                                   | ` `[getAddDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#getAddDuration())`() ` Gets the current duration for which all add animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | | ` long`                                                                                                                                                   | ` `[getChangeDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#getChangeDuration())`() ` Gets the current duration for which all change animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | ` long`                                                                                                                                                   | ` `[getMoveDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#getMoveDuration())`() ` Gets the current duration for which all move animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | ` long`                                                                                                                                                   | ` `[getRemoveDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#getRemoveDuration())`() ` Gets the current duration for which all remove animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | ` abstract boolean`                                                                                                                                       | ` `[isRunning](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#isRunning())`() ` Method which returns whether there are any item animations currently running.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | ` final boolean`                                                                                                                                          | ` `[isRunning](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#isRunning(android.support.v7.widget.RecyclerView.ItemAnimator.ItemAnimatorFinishedListener))`(`[RecyclerView.ItemAnimator.ItemAnimatorFinishedListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemAnimatorFinishedListener)` listener) ` Like[isRunning()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#isRunning()), this method returns whether there are any item animations currently running.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | | ` `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo) | ` `[obtainHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#obtainHolderInfo())`() ` Returns a new[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)which will be used to store information about the ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | | ` void`                                                                                                                                                   | ` `[onAnimationFinished](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#onAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Called after[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))is called by the ItemAnimator.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | | ` void`                                                                                                                                                   | ` `[onAnimationStarted](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#onAnimationStarted(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Called when a new animation is started on the given ViewHolder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | ` `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo) | ` `[recordPostLayoutInformation](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPostLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.State](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.State)` state, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Called by the RecyclerView after the layout is complete.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | | ` `[RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo) | ` `[recordPreLayoutInformation](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>))`(`[RecyclerView.State](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.State)` state, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, int changeFlags, List<Object> payloads) ` Called by the RecyclerView before the layout begins.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | | ` abstract void`                                                                                                                                          | ` `[runPendingAnimations](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())`() ` Called when there are pending animations waiting to be started.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | | ` void`                                                                                                                                                   | ` `[setAddDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#setAddDuration(long))`(long addDuration) ` Sets the duration for which all add animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | | ` void`                                                                                                                                                   | ` `[setChangeDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#setChangeDuration(long))`(long changeDuration) ` Sets the duration for which all change animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | | ` void`                                                                                                                                                   | ` `[setMoveDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#setMoveDuration(long))`(long moveDuration) ` Sets the duration for which all move animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | | ` void`                                                                                                                                                   | ` `[setRemoveDuration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#setRemoveDuration(long))`(long removeDuration) ` Sets the duration for which all remove animations will run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### SimpleItemAnimator

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
SimpleItemAnimator ()
```

<br />

<br />

## Public methods

### animateAdd

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateAdd (RecyclerView.ViewHolder holder)
```

Called when an item is added to the RecyclerView. Implementors can choose whether and how to animate that change, but must always call[dispatchAddFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchAddFinished(android.support.v7.widget.RecyclerView.ViewHolder))when done, either immediately (if no animation will occur) or after the animation actually finishes. The return value indicates whether an animation has been set up and whether the ItemAnimator's[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())method should be called at the next opportunity. This mechanism allows ItemAnimator to set up individual animations as separate calls to[animateAdd()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAdd(android.support.v7.widget.RecyclerView.ViewHolder)),[animateMove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateMove(android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int)),[animateRemove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateRemove(android.support.v7.widget.RecyclerView.ViewHolder)), and[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))come in one by one, then start the animations together in the later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations()).

This method may also be called for appearing items which were already in the RecyclerView, but for which the system does not have enough information to animate them into view. In that case, the default animation for adding items is run on those items as well.

<br />

<br />

|                                Parameters                                 ||
|----------|-----------------------------------------------------------------|
| `holder` | `RecyclerView.ViewHolder`: The item that is being added. <br /> |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateAppearance

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateAppearance (RecyclerView.ViewHolder viewHolder, 
                RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 
                RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo)
```

Called by the RecyclerView when a ViewHolder is added to the layout.

In detail, this means that the ViewHolder was**not**a child when the layout started but has been added by the LayoutManager. It might be newly added to the adapter or simply become visible due to other factors.

ItemAnimator must call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))when the animation is complete (or instantly call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))if it decides not to animate the view).

<br />

|                                                                                                                                                                                                                                                                                                      Parameters                                                                                                                                                                                                                                                                                                      ||
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `viewHolder`     | `RecyclerView.ViewHolder`: The ViewHolder which should be animated <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `preLayoutInfo`  | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). Might be null if Item was just added to the adapter or LayoutManager does not support predictive animations or it could not predict that this ViewHolder will become visible. <br /> |
| `postLayoutInfo` | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br />                                                                                                                                                                               |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateChange

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateChange (RecyclerView.ViewHolder oldHolder, 
                RecyclerView.ViewHolder newHolder, 
                int fromLeft, 
                int fromTop, 
                int toLeft, 
                int toTop)
```

Called when an item is changed in the RecyclerView, as indicated by a call to[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))or[notifyItemRangeChanged(int, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemRangeChanged(int, int)).

Implementers can choose whether and how to animate changes, but must always call[dispatchChangeFinished(ViewHolder, boolean)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchChangeFinished(android.support.v7.widget.RecyclerView.ViewHolder, boolean))for each non-null distinct ViewHolder, either immediately (if no animation will occur) or after the animation actually finishes. If the`oldHolder`is the same ViewHolder as the`newHolder`, you must call[dispatchChangeFinished(ViewHolder, boolean)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchChangeFinished(android.support.v7.widget.RecyclerView.ViewHolder, boolean))once and only once. In that case, the second parameter of`dispatchChangeFinished`is ignored.

The return value indicates whether an animation has been set up and whether the ItemAnimator's[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())method should be called at the next opportunity. This mechanism allows ItemAnimator to set up individual animations as separate calls to[animateAdd()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAdd(android.support.v7.widget.RecyclerView.ViewHolder)),[animateMove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateMove(android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int)),[animateRemove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateRemove(android.support.v7.widget.RecyclerView.ViewHolder)), and[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))come in one by one, then start the animations together in the later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations()).

<br />

|                                                      Parameters                                                      ||
|-------------|---------------------------------------------------------------------------------------------------------|
| `oldHolder` | `RecyclerView.ViewHolder`: The original item that changed. <br />                                       |
| `newHolder` | `RecyclerView.ViewHolder`: The new item that was created with the changed content. Might be null <br /> |
| `fromLeft`  | `int`: Left of the old view holder <br />                                                               |
| `fromTop`   | `int`: Top of the old view holder <br />                                                                |
| `toLeft`    | `int`: Left of the new view holder <br />                                                               |
| `toTop`     | `int`: Top of the new view holder <br />                                                                |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateChange

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateChange (RecyclerView.ViewHolder oldHolder, 
                RecyclerView.ViewHolder newHolder, 
                RecyclerView.ItemAnimator.ItemHolderInfo preInfo, 
                RecyclerView.ItemAnimator.ItemHolderInfo postInfo)
```

Called by the RecyclerView when an adapter item is present both before and after the layout and RecyclerView has received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it. This method may also be called when[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())is called and adapter has stable ids so that RecyclerView could still rebind views to the same ViewHolders. If viewType changes when[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())is called, this method**will not** be called, instead,[animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateAppearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))will be called for the new ViewHolder and the old one will be recycled.

If this method is called due to a[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())call, there is a good possibility that item contents didn't really change but it is rebound from the adapter.[DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator)will skip animating the View if its location on the screen didn't change and your animator should handle this case as well and avoid creating unnecessary animations.

When an item is updated, ItemAnimator has a chance to ask RecyclerView to keep the previous presentation of the item as-is and supply a new ViewHolder for the updated presentation (see:[canReuseUpdatedViewHolder(ViewHolder, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder, java.util.List<java.lang.Object>)). This is useful if you don't know the contents of the Item and would like to cross-fade the old and the new one ([DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator)uses this technique).

When you are writing a custom item animator for your layout, it might be more performant and elegant to re-use the same ViewHolder and animate the content changes manually.

When[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))is called, the Item's view type may change. If the Item's view type has changed or ItemAnimator returned`false`for this ViewHolder when[canReuseUpdatedViewHolder(ViewHolder, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder, java.util.List<java.lang.Object>))was called, the`oldHolder`and`newHolder`will be different ViewHolder instances which represent the same Item. In that case, only the new ViewHolder is visible to the LayoutManager but RecyclerView keeps old ViewHolder attached for animations.

ItemAnimator must call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))for each distinct ViewHolder when their animation is complete (or instantly call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))if it decides not to animate the view).

If oldHolder and newHolder are the same instance, you should call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))**only once**.

Note that when a ViewHolder both changes and disappears in the same layout pass, the animation callback method which will be called by the RecyclerView depends on the ItemAnimator's decision whether to re-use the same ViewHolder or not, and also the LayoutManager's decision whether to layout the changed version of a disappearing ViewHolder or not. RecyclerView will call`animateChange`instead of[animateDisappearance](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateDisappearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))if and only if the ItemAnimator returns`false`from[canReuseUpdatedViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder))and the LayoutManager lays out a new disappearing view that holds the updated information. Built-in LayoutManagers try to avoid laying out updated versions of disappearing views.

<br />

|                                                                                                                                                                                                            Parameters                                                                                                                                                                                                             ||
|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `oldHolder` | `RecyclerView.ViewHolder`: The ViewHolder before the layout is started, might be the same instance with newHolder. <br />                                                                                                                                                                                                                                                                                            |
| `newHolder` | `RecyclerView.ViewHolder`: The ViewHolder after the layout is finished, might be the same instance with oldHolder. <br />                                                                                                                                                                                                                                                                                            |
| `preInfo`   | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br /> |
| `postInfo`  | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br /> |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateDisappearance

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateDisappearance (RecyclerView.ViewHolder viewHolder, 
                RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 
                RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo)
```

Called by the RecyclerView when a ViewHolder has disappeared from the layout.

This means that the View was a child of the LayoutManager when layout started but has been removed by the LayoutManager. It might have been removed from the adapter or simply become invisible due to other factors. You can distinguish these two cases by checking the change flags that were passed to[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)).

Note that when a ViewHolder both changes and disappears in the same layout pass, the animation callback method which will be called by the RecyclerView depends on the ItemAnimator's decision whether to re-use the same ViewHolder or not, and also the LayoutManager's decision whether to layout the changed version of a disappearing ViewHolder or not. RecyclerView will call[animateChange](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))instead of`animateDisappearance`if and only if the ItemAnimator returns`false`from[canReuseUpdatedViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder))and the LayoutManager lays out a new disappearing view that holds the updated information. Built-in LayoutManagers try to avoid laying out updated versions of disappearing views.

If LayoutManager supports predictive animations, it might provide a target disappear location for the View by laying it out in that location. When that happens, RecyclerView will call[recordPostLayoutInformation(State, ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPostLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder))and the response of that call will be passed to this method as the`postLayoutInfo`.

ItemAnimator must call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))when the animation is complete (or instantly call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))if it decides not to animate the view).

<br />

|                                                                                                                                                                                                                     Parameters                                                                                                                                                                                                                     ||
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `viewHolder`     | `RecyclerView.ViewHolder`: The ViewHolder which should be animated <br />                                                                                                                                                                                                                                                                                                                                                        |
| `preLayoutInfo`  | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br />             |
| `postLayoutInfo` | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPostLayoutInformation(State, ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPostLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder)). Might be null if the LayoutManager did not layout the item. <br /> |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateMove

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateMove (RecyclerView.ViewHolder holder, 
                int fromX, 
                int fromY, 
                int toX, 
                int toY)
```

Called when an item is moved in the RecyclerView. Implementors can choose whether and how to animate that change, but must always call[dispatchMoveFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchMoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))when done, either immediately (if no animation will occur) or after the animation actually finishes. The return value indicates whether an animation has been set up and whether the ItemAnimator's[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())method should be called at the next opportunity. This mechanism allows ItemAnimator to set up individual animations as separate calls to[animateAdd()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAdd(android.support.v7.widget.RecyclerView.ViewHolder)),[animateMove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateMove(android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int)),[animateRemove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateRemove(android.support.v7.widget.RecyclerView.ViewHolder)), and[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))come in one by one, then start the animations together in the later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations()).

<br />

|                                Parameters                                 ||
|----------|-----------------------------------------------------------------|
| `holder` | `RecyclerView.ViewHolder`: The item that is being moved. <br /> |
| `fromX`  | `int` <br />                                                    |
| `fromY`  | `int` <br />                                                    |
| `toX`    | `int` <br />                                                    |
| `toY`    | `int` <br />                                                    |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animatePersistence

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animatePersistence (RecyclerView.ViewHolder viewHolder, 
                RecyclerView.ItemAnimator.ItemHolderInfo preInfo, 
                RecyclerView.ItemAnimator.ItemHolderInfo postInfo)
```

Called by the RecyclerView when a ViewHolder is present in both before and after the layout and RecyclerView has not received a[notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))call for it or a[notifyDataSetChanged()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyDataSetChanged())call.

This ViewHolder still represents the same data that it was representing when the layout started but its position / size may be changed by the LayoutManager.

If the Item's layout position didn't change, RecyclerView still calls this method because it does not track this information (or does not necessarily know that an animation is not required). Your ItemAnimator should handle this case and if there is nothing to animate, it should call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))and return`false`.

ItemAnimator must call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))when the animation is complete (or instantly call[dispatchAnimationFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#dispatchAnimationFinished(android.support.v7.widget.RecyclerView.ViewHolder))if it decides not to animate the view).

<br />

|                                                                                                                                                                                                             Parameters                                                                                                                                                                                                             ||
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `viewHolder` | `RecyclerView.ViewHolder`: The ViewHolder which should be animated <br />                                                                                                                                                                                                                                                                                                                                            |
| `preInfo`    | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br /> |
| `postInfo`   | `RecyclerView.ItemAnimator.ItemHolderInfo`: The information that was returned from[recordPreLayoutInformation(State, ViewHolder, int, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(android.support.v7.widget.RecyclerView.State, android.support.v7.widget.RecyclerView.ViewHolder, int, java.util.List<java.lang.Object>)). <br /> |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### animateRemove

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean animateRemove (RecyclerView.ViewHolder holder)
```

Called when an item is removed from the RecyclerView. Implementors can choose whether and how to animate that change, but must always call[dispatchRemoveFinished(ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#dispatchRemoveFinished(android.support.v7.widget.RecyclerView.ViewHolder))when done, either immediately (if no animation will occur) or after the animation actually finishes. The return value indicates whether an animation has been set up and whether the ItemAnimator's[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())method should be called at the next opportunity. This mechanism allows ItemAnimator to set up individual animations as separate calls to[animateAdd()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateAdd(android.support.v7.widget.RecyclerView.ViewHolder)),[animateMove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateMove(android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int)),[animateRemove()](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateRemove(android.support.v7.widget.RecyclerView.ViewHolder)), and[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))come in one by one, then start the animations together in the later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations()).

This method may also be called for disappearing items which continue to exist in the RecyclerView, but for which the system does not have enough information to animate them out of view. In that case, the default animation for removing items is run on those items as well.

<br />

<br />

|                                 Parameters                                  ||
|----------|-------------------------------------------------------------------|
| `holder` | `RecyclerView.ViewHolder`: The item that is being removed. <br /> |

|                                                                                                       Returns                                                                                                       ||
|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if a later call to[runPendingAnimations()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#runPendingAnimations())is requested, false otherwise. <br /> |

### canReuseUpdatedViewHolder

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean canReuseUpdatedViewHolder (RecyclerView.ViewHolder viewHolder)
```

When an item is changed, ItemAnimator can decide whether it wants to re-use the same ViewHolder for animations or RecyclerView should create a copy of the item and ItemAnimator will use both to run the animation (e.g. cross-fade).

Note that this method will only be called if the[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)still has the same type ([getItemViewType(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#getItemViewType(int))). Otherwise, ItemAnimator will always receive both[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)s in the[animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))method.

If your application is using change payloads, you can override[canReuseUpdatedViewHolder(ViewHolder, List)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#canReuseUpdatedViewHolder(android.support.v7.widget.RecyclerView.ViewHolder, java.util.List<java.lang.Object>))to decide based on payloads.

<br />

|                                                   Parameters                                                    ||
|--------------|---------------------------------------------------------------------------------------------------|
| `viewHolder` | `RecyclerView.ViewHolder`: The ViewHolder which represents the changed item's old content. <br /> |

|                                                   Returns                                                    ||
|-----------|---------------------------------------------------------------------------------------------------|
| `boolean` | True if change animations are not supported or the ViewHolder is invalid, false otherwise. <br /> |

**See also:**

- [setSupportsChangeAnimations(boolean)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#setSupportsChangeAnimations(boolean))  

### dispatchAddFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchAddFinished (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when an add animation is done.

<br />

|                               Parameters                                ||
|--------|-----------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item which has been added <br /> |

### dispatchAddStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchAddStarting (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when an add animation is being started.

<br />

|                           Parameters                           ||
|--------|--------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item being added <br /> |

### dispatchChangeFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchChangeFinished (RecyclerView.ViewHolder item, 
                boolean oldItem)
```

Method to be called by subclasses when a change animation is done.

<br />

|                                                                                                                                                                                                                  Parameters                                                                                                                                                                                                                  ||
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `item`    | `RecyclerView.ViewHolder`: The item which has been changed (this method must be called for each non-null ViewHolder passed into[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))). <br /> |
| `oldItem` | `boolean`: true if this is the old item that was changed, false if it is the new item that replaced the old item. <br />                                                                                                                                                                                                                                                                                                          |

**See also:**

- [animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))  

### dispatchChangeStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchChangeStarting (RecyclerView.ViewHolder item, 
                boolean oldItem)
```

Method to be called by subclasses when a change animation is being started.

<br />

|                                                                                                                                                                                                                  Parameters                                                                                                                                                                                                                  ||
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `item`    | `RecyclerView.ViewHolder`: The item which has been changed (this method must be called for each non-null ViewHolder passed into[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))). <br /> |
| `oldItem` | `boolean`: true if this is the old item that was changed, false if it is the new item that replaced the old item. <br />                                                                                                                                                                                                                                                                                                          |

### dispatchMoveFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchMoveFinished (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when a move animation is done.

<br />

|                               Parameters                                ||
|--------|-----------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item which has been moved <br /> |

**See also:**

- [animateDisappearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateDisappearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))
- [animatePersistence(ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animatePersistence(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))
- [animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateAppearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))  

### dispatchMoveStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchMoveStarting (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when a move animation is being started.

<br />

|                           Parameters                           ||
|--------|--------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item being moved <br /> |

### dispatchRemoveFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchRemoveFinished (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when a remove animation is done.

<br />

|                                Parameters                                 ||
|--------|-------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item which has been removed <br /> |

**See also:**

- [animateDisappearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator#animateDisappearance(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo, android.support.v7.widget.RecyclerView.ItemAnimator.ItemHolderInfo))  

### dispatchRemoveStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void dispatchRemoveStarting (RecyclerView.ViewHolder item)
```

Method to be called by subclasses when a remove animation is being started.

<br />

|                            Parameters                            ||
|--------|----------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The item being removed <br /> |

### getSupportsChangeAnimations

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean getSupportsChangeAnimations ()
```

Returns whether this ItemAnimator supports animations of change events.

<br />

|                                  Returns                                   ||
|-----------|-----------------------------------------------------------------|
| `boolean` | true if change animations are supported, false otherwise <br /> |

### onAddFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onAddFinished (RecyclerView.ViewHolder item)
```

Called when an add animation has ended on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### onAddStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onAddStarting (RecyclerView.ViewHolder item)
```

Called when an add animation is being started on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### onChangeFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onChangeFinished (RecyclerView.ViewHolder item, 
                boolean oldItem)
```

Called when a change animation has ended on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                                             Parameters                                                              ||
|-----------|--------------------------------------------------------------------------------------------------------------------------|
| `item`    | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br />                                                         |
| `oldItem` | `boolean`: true if this is the old item that was changed, false if it is the new item that replaced the old item. <br /> |

### onChangeStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onChangeStarting (RecyclerView.ViewHolder item, 
                boolean oldItem)
```

Called when a change animation is being started on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                                             Parameters                                                              ||
|-----------|--------------------------------------------------------------------------------------------------------------------------|
| `item`    | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br />                                                         |
| `oldItem` | `boolean`: true if this is the old item that was changed, false if it is the new item that replaced the old item. <br /> |

### onMoveFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onMoveFinished (RecyclerView.ViewHolder item)
```

Called when a move animation has ended on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### onMoveStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onMoveStarting (RecyclerView.ViewHolder item)
```

Called when a move animation is being started on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### onRemoveFinished

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onRemoveFinished (RecyclerView.ViewHolder item)
```

Called when a remove animation has ended on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### onRemoveStarting

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void onRemoveStarting (RecyclerView.ViewHolder item)
```

Called when a remove animation is being started on the given ViewHolder. The default implementation does nothing. Subclasses may wish to override this method to handle any ViewHolder-specific operations linked to animation lifecycles.

<br />

|                                Parameters                                ||
|--------|------------------------------------------------------------------|
| `item` | `RecyclerView.ViewHolder`: The ViewHolder being animated. <br /> |

### setSupportsChangeAnimations

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setSupportsChangeAnimations (boolean supportsChangeAnimations)
```

Sets whether this ItemAnimator supports animations of item change events. If you set this property to false, actions on the data set which change the contents of items will not be animated. What those animations do is left up to the discretion of the ItemAnimator subclass, in its[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))implementation. The value of this property is true by default.

<br />

|                                                                                                                                                                                                                                                   Parameters                                                                                                                                                                                                                                                   ||
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `supportsChangeAnimations` | `boolean`: true if change animations are supported by this ItemAnimator, false otherwise. If the property is false, the ItemAnimator will not receive a call to[animateChange(ViewHolder, ViewHolder, int, int, int, int)](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator#animateChange(android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int, int))when changes occur. <br /> |

**See also:**

- [notifyItemChanged(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemChanged(int))
- [notifyItemRangeChanged(int, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#notifyItemRangeChanged(int, int))  
-

  ## Annotations

  - [RecyclerView.EdgeEffectFactory.EdgeDirection](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.EdgeEffectFactory.EdgeDirection)
  - [RecyclerView.ItemAnimator.AdapterChanges](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.AdapterChanges)
-

  ## Interfaces

  - [ActionMenuView.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView.OnMenuItemClickListener)
  - [PopupMenu.OnDismissListener](https://developer.android.com/reference/android/support/v7/widget/PopupMenu.OnDismissListener)
  - [PopupMenu.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/PopupMenu.OnMenuItemClickListener)
  - [RecyclerView.ChildDrawingOrderCallback](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ChildDrawingOrderCallback)
  - [RecyclerView.ItemAnimator.ItemAnimatorFinishedListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemAnimatorFinishedListener)
  - [RecyclerView.LayoutManager.LayoutPrefetchRegistry](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.LayoutPrefetchRegistry)
  - [RecyclerView.OnChildAttachStateChangeListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnChildAttachStateChangeListener)
  - [RecyclerView.OnItemTouchListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener)
  - [RecyclerView.RecyclerListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.RecyclerListener)
  - [RecyclerView.SmoothScroller.ScrollVectorProvider](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller.ScrollVectorProvider)
  - [SearchView.OnCloseListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnCloseListener)
  - [SearchView.OnQueryTextListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnQueryTextListener)
  - [SearchView.OnSuggestionListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnSuggestionListener)
  - [ShareActionProvider.OnShareTargetSelectedListener](https://developer.android.com/reference/android/support/v7/widget/ShareActionProvider.OnShareTargetSelectedListener)
  - [ThemedSpinnerAdapter](https://developer.android.com/reference/android/support/v7/widget/ThemedSpinnerAdapter)
  - [Toolbar.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/Toolbar.OnMenuItemClickListener)
-

  ## Classes

  - [ActionMenuView](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView)
  - [ActionMenuView.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView.LayoutParams)
  - [AppCompatAutoCompleteTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatAutoCompleteTextView)
  - [AppCompatButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatButton)
  - [AppCompatCheckBox](https://developer.android.com/reference/android/support/v7/widget/AppCompatCheckBox)
  - [AppCompatCheckedTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatCheckedTextView)
  - [AppCompatEditText](https://developer.android.com/reference/android/support/v7/widget/AppCompatEditText)
  - [AppCompatImageButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatImageButton)
  - [AppCompatImageView](https://developer.android.com/reference/android/support/v7/widget/AppCompatImageView)
  - [AppCompatMultiAutoCompleteTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatMultiAutoCompleteTextView)
  - [AppCompatRadioButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatRadioButton)
  - [AppCompatRatingBar](https://developer.android.com/reference/android/support/v7/widget/AppCompatRatingBar)
  - [AppCompatSeekBar](https://developer.android.com/reference/android/support/v7/widget/AppCompatSeekBar)
  - [AppCompatSpinner](https://developer.android.com/reference/android/support/v7/widget/AppCompatSpinner)
  - [AppCompatTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatTextView)
  - [CardView](https://developer.android.com/reference/android/support/v7/widget/CardView)
  - [DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator)
  - [DividerItemDecoration](https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration)
  - [GridLayout](https://developer.android.com/reference/android/support/v7/widget/GridLayout)
  - [GridLayout.Alignment](https://developer.android.com/reference/android/support/v7/widget/GridLayout.Alignment)
  - [GridLayout.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/GridLayout.LayoutParams)
  - [GridLayout.Spec](https://developer.android.com/reference/android/support/v7/widget/GridLayout.Spec)
  - [GridLayoutManager](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager)
  - [GridLayoutManager.DefaultSpanSizeLookup](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.DefaultSpanSizeLookup)
  - [GridLayoutManager.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.LayoutParams)
  - [GridLayoutManager.SpanSizeLookup](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.SpanSizeLookup)
  - [LinearLayoutCompat](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutCompat)
  - [LinearLayoutCompat.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutCompat.LayoutParams)
  - [LinearLayoutManager](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager)
  - [LinearLayoutManager.LayoutChunkResult](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.LayoutChunkResult)
  - [LinearSmoothScroller](https://developer.android.com/reference/android/support/v7/widget/LinearSmoothScroller)
  - [LinearSnapHelper](https://developer.android.com/reference/android/support/v7/widget/LinearSnapHelper)
  - [ListPopupWindow](https://developer.android.com/reference/android/support/v7/widget/ListPopupWindow)
  - [OrientationHelper](https://developer.android.com/reference/android/support/v7/widget/OrientationHelper)
  - [PagerSnapHelper](https://developer.android.com/reference/android/support/v7/widget/PagerSnapHelper)
  - [PopupMenu](https://developer.android.com/reference/android/support/v7/widget/PopupMenu)
  - [RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)
  - [RecyclerView.Adapter](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter)
  - [RecyclerView.AdapterDataObserver](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.AdapterDataObserver)
  - [RecyclerView.EdgeEffectFactory](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.EdgeEffectFactory)
  - [RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)
  - [RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)
  - [RecyclerView.ItemDecoration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemDecoration)
  - [RecyclerView.LayoutManager](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager)
  - [RecyclerView.LayoutManager.Properties](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.Properties)
  - [RecyclerView.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutParams)
  - [RecyclerView.OnFlingListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnFlingListener)
  - [RecyclerView.OnScrollListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnScrollListener)
  - [RecyclerView.RecycledViewPool](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.RecycledViewPool)
  - [RecyclerView.Recycler](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler)
  - [RecyclerView.SimpleOnItemTouchListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SimpleOnItemTouchListener)
  - [RecyclerView.SmoothScroller](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller)
  - [RecyclerView.SmoothScroller.Action](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller.Action)
  - [RecyclerView.State](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.State)
  - [RecyclerView.ViewCacheExtension](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewCacheExtension)
  - [RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)
  - [RecyclerViewAccessibilityDelegate](https://developer.android.com/reference/android/support/v7/widget/RecyclerViewAccessibilityDelegate)
  - [RecyclerViewAccessibilityDelegate.ItemDelegate](https://developer.android.com/reference/android/support/v7/widget/RecyclerViewAccessibilityDelegate.ItemDelegate)
  - [SearchView](https://developer.android.com/reference/android/support/v7/widget/SearchView)
  - [ShareActionProvider](https://developer.android.com/reference/android/support/v7/widget/ShareActionProvider)
  - [SimpleItemAnimator](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator)
  - [SnapHelper](https://developer.android.com/reference/android/support/v7/widget/SnapHelper)
  - [StaggeredGridLayoutManager](https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager)
  - [StaggeredGridLayoutManager.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager.LayoutParams)
  - [SwitchCompat](https://developer.android.com/reference/android/support/v7/widget/SwitchCompat)
  - [ThemedSpinnerAdapter.Helper](https://developer.android.com/reference/android/support/v7/widget/ThemedSpinnerAdapter.Helper)
  - [Toolbar](https://developer.android.com/reference/android/support/v7/widget/Toolbar)
  - [Toolbar.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/Toolbar.LayoutParams)
  - [Toolbar.SavedState](https://developer.android.com/reference/android/support/v7/widget/Toolbar.SavedState)
  - [TooltipCompat](https://developer.android.com/reference/android/support/v7/widget/TooltipCompat)