belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1
RecyclerView.ItemAnimator
  public
  static
  
  abstract
  class
  RecyclerView.ItemAnimator
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.support.v7.widget.RecyclerView.ItemAnimator | 
|  Known Direct Subclasses | 
|  Known Indirect Subclasses | 
This class defines the animations that take place on items as changes are made
 to the adapter.
 Subclasses of ItemAnimator can be used to implement custom animations for actions on
 ViewHolder items. The RecyclerView will manage retaining these items while they
 are being animated, but implementors must call dispatchAnimationFinished(ViewHolder)
 when a ViewHolder's animation is finished. In other words, there must be a matching
 dispatchAnimationFinished(ViewHolder) call for each
 animateAppearance(),
 animateChange()
 animatePersistence(),
 and
 animateDisappearance() call.
 
By default, RecyclerView uses DefaultItemAnimator.
See also:
Summary
| Nested classes | |
|---|---|
| 
        
        
        
        
        @interface | RecyclerView.ItemAnimator.AdapterChangesThe set of flags that might be passed to
  | 
| 
        
        
        
        
        interface | RecyclerView.ItemAnimator.ItemAnimatorFinishedListenerThis interface is used to inform listeners when all pending or running animations in an ItemAnimator are finished. | 
| 
        
        
        
        
        class | RecyclerView.ItemAnimator.ItemHolderInfoA simple data structure that holds information about an item's bounds. | 
| Constants | |
|---|---|
| int | FLAG_APPEARED_IN_PRE_LAYOUTThis ViewHolder was not laid out but has been added to the layout in pre-layout state
 by the  | 
| int | FLAG_CHANGEDThe Item represented by this ViewHolder is updated. | 
| int | FLAG_INVALIDATEDAdapter  | 
| int | FLAG_MOVEDThe position of the Item represented by this ViewHolder has been changed. | 
| int | FLAG_REMOVEDThe Item represented by this ViewHolder is removed from the adapter. | 
| Public constructors | |
|---|---|
| 
      RecyclerView.ItemAnimator()
       | |
| Public methods | |
|---|---|
| 
        abstract
        
        
        
        
        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. | 
| 
        abstract
        
        
        
        
        boolean | 
      animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 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  | 
| 
        abstract
        
        
        
        
        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. | 
| 
        abstract
        
        
        
        
        boolean | 
      animatePersistence(RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 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  | 
| 
        
        
        
        
        
        boolean | 
      canReuseUpdatedViewHolder(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(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(RecyclerView.ViewHolder viewHolder)
      Method to be called by subclasses when an animation is finished. | 
| 
        
        
        
        final
        
        void | 
      dispatchAnimationStarted(RecyclerView.ViewHolder viewHolder)
      Method to be called by subclasses when an animation is started. | 
| 
        
        
        
        final
        
        void | 
      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(RecyclerView.ViewHolder item)
      Method called when an animation on a view should be ended immediately. | 
| 
        abstract
        
        
        
        
        void | 
      endAnimations()
      Method called when all item animations should be ended immediately. | 
| 
        
        
        
        
        
        long | 
      getAddDuration()
      Gets the current duration for which all add animations will run. | 
| 
        
        
        
        
        
        long | 
      getChangeDuration()
      Gets the current duration for which all change animations will run. | 
| 
        
        
        
        
        
        long | 
      getMoveDuration()
      Gets the current duration for which all move animations will run. | 
| 
        
        
        
        
        
        long | 
      getRemoveDuration()
      Gets the current duration for which all remove animations will run. | 
| 
        abstract
        
        
        
        
        boolean | 
      isRunning()
      Method which returns whether there are any item animations currently running. | 
| 
        
        
        
        final
        
        boolean | 
      isRunning(RecyclerView.ItemAnimator.ItemAnimatorFinishedListener listener)
      Like  | 
| 
        
        
        
        
        
        RecyclerView.ItemAnimator.ItemHolderInfo | 
      obtainHolderInfo()
      Returns a new  | 
| 
        
        
        
        
        
        void | 
      onAnimationFinished(RecyclerView.ViewHolder viewHolder)
      Called after  | 
| 
        
        
        
        
        
        void | 
      onAnimationStarted(RecyclerView.ViewHolder viewHolder)
      Called when a new animation is started on the given ViewHolder. | 
| 
        
        
        
        
        
        RecyclerView.ItemAnimator.ItemHolderInfo | 
      recordPostLayoutInformation(RecyclerView.State state, RecyclerView.ViewHolder viewHolder)
      Called by the RecyclerView after the layout is complete. | 
| 
        
        
        
        
        
        RecyclerView.ItemAnimator.ItemHolderInfo | 
      recordPreLayoutInformation(RecyclerView.State state, RecyclerView.ViewHolder viewHolder, int changeFlags, List<Object> payloads)
      Called by the RecyclerView before the layout begins. | 
| 
        abstract
        
        
        
        
        void | 
      runPendingAnimations()
      Called when there are pending animations waiting to be started. | 
| 
        
        
        
        
        
        void | 
      setAddDuration(long addDuration)
      Sets the duration for which all add animations will run. | 
| 
        
        
        
        
        
        void | 
      setChangeDuration(long changeDuration)
      Sets the duration for which all change animations will run. | 
| 
        
        
        
        
        
        void | 
      setMoveDuration(long moveDuration)
      Sets the duration for which all move animations will run. | 
| 
        
        
        
        
        
        void | 
      setRemoveDuration(long removeDuration)
      Sets the duration for which all remove animations will run. | 
| Inherited methods | |
|---|---|
|  From
class 
  
    java.lang.Object
  
 | |
Constants
FLAG_APPEARED_IN_PRE_LAYOUT
int 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. This means that the item was already in the Adapter but
 invisible and it may become visible in the post layout phase. LayoutManagers may prefer
 to add new items in pre-layout to specify their virtual location when they are invisible
 (e.g. to specify the item should animate in from below the visible area).
 
Constant Value: 4096 (0x00001000)
FLAG_CHANGED
int FLAG_CHANGED
The Item represented by this ViewHolder is updated.
Constant Value: 2 (0x00000002)
FLAG_INVALIDATED
int FLAG_INVALIDATED
Adapter notifyDataSetChanged() has been called and the content
 represented by this ViewHolder is invalid.
 
Constant Value: 4 (0x00000004)
FLAG_MOVED
int FLAG_MOVED
The position of the Item represented by this ViewHolder has been changed. This flag is
 not bound to notifyItemMoved(int, int). It might be set in response to
 any adapter change that may have a side effect on this item. (e.g. The item before this
 one has been removed from the Adapter).
 
Constant Value: 2048 (0x00000800)
FLAG_REMOVED
int FLAG_REMOVED
The Item represented by this ViewHolder is removed from the adapter.
Constant Value: 8 (0x00000008)
Public constructors
Public methods
animateAppearance
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) when the animation
 is complete (or instantly call dispatchAnimationFinished(ViewHolder) if it
 decides not to animate the view).
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which should be animated | 
| preLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List).
                       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. | 
| postLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| Returns | |
|---|---|
| boolean | true if a later call to runPendingAnimations()is requested,
 false otherwise. | 
animateChange
boolean animateChange (RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 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) call
 for it. This method may also be called when
 notifyDataSetChanged() is called and adapter has stable ids so that
 RecyclerView could still rebind views to the same ViewHolders. If viewType changes when
 notifyDataSetChanged() is called, this method will not be called,
 instead, animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo) will be
 called for the new ViewHolder and the old one will be recycled.
 
 If this method is called due to a notifyDataSetChanged() call, there is
 a good possibility that item contents didn't really change but it is rebound from the
 adapter. 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).
 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 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) 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) 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) for each distinct
 ViewHolder when their animation is complete
 (or instantly call dispatchAnimationFinished(ViewHolder) if it decides not to
 animate the view).
 
  If oldHolder and newHolder are the same instance, you should call
 dispatchAnimationFinished(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 if and only if the ItemAnimator returns false from
 canReuseUpdatedViewHolder 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.
| Parameters | |
|---|---|
| oldHolder | RecyclerView.ViewHolder: The ViewHolder before the layout is started, might be the same
                      instance with newHolder. | 
| newHolder | RecyclerView.ViewHolder: The ViewHolder after the layout is finished, might be the same
                      instance with oldHolder. | 
| preLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| postLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| Returns | |
|---|---|
| boolean | true if a later call to runPendingAnimations()is requested,
 false otherwise. | 
animateDisappearance
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).
 
 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 if and only if the ItemAnimator
 returns false from
 canReuseUpdatedViewHolder 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) and the
 response of that call will be passed to this method as the postLayoutInfo.
 
 ItemAnimator must call dispatchAnimationFinished(ViewHolder) when the animation
 is complete (or instantly call dispatchAnimationFinished(ViewHolder) if it
 decides not to animate the view).
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which should be animated | 
| preLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| postLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPostLayoutInformation(State, ViewHolder). Might be
                       null if the LayoutManager did not layout the item. | 
| Returns | |
|---|---|
| boolean | true if a later call to runPendingAnimations()is requested,
 false otherwise. | 
animatePersistence
boolean animatePersistence (RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, 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) call
 for it or a 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) and return
 false.
 
 ItemAnimator must call dispatchAnimationFinished(ViewHolder) when the animation
 is complete (or instantly call dispatchAnimationFinished(ViewHolder) if it
 decides not to animate the view).
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which should be animated | 
| preLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| postLayoutInfo | RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned fromrecordPreLayoutInformation(State, ViewHolder, int, List). | 
| Returns | |
|---|---|
| boolean | true if a later call to runPendingAnimations()is requested,
 false otherwise. | 
canReuseUpdatedViewHolder
boolean canReuseUpdatedViewHolder (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. cross-fade).
 Note that this method will only be called if the RecyclerView.ViewHolder still has the same
 type (getItemViewType(int)). Otherwise, ItemAnimator will always receive
 both RecyclerView.ViewHolders in the
 animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo) method.
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which represents the changed item's old content. | 
| payloads | List: A non-null list of merged payloads that were sent with change
                 notifications. Can be empty if the adapter is invalidated vianotifyDataSetChanged(). The same list of
                 payloads will be passed intoonBindViewHolder(ViewHolder, int, List)method if this method returnstrue. | 
| Returns | |
|---|---|
| boolean | True if RecyclerView should just rebind to the same ViewHolder or false if
         RecyclerView should create a new ViewHolder and pass this ViewHolder to the
         ItemAnimator to animate. Default implementation calls canReuseUpdatedViewHolder(ViewHolder). | 
See also:
canReuseUpdatedViewHolder
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 still has the same
 type (getItemViewType(int)). Otherwise, ItemAnimator will always receive
 both RecyclerView.ViewHolders in the
 animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo) method.
 
 If your application is using change payloads, you can override
 canReuseUpdatedViewHolder(ViewHolder, List) to decide based on payloads.
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which represents the changed item's old content. | 
| Returns | |
|---|---|
| boolean | True if RecyclerView should just rebind to the same ViewHolder or false if
         RecyclerView should create a new ViewHolder and pass this ViewHolder to the
         ItemAnimator to animate. Default implementation returns true. | 
dispatchAnimationFinished
void dispatchAnimationFinished (RecyclerView.ViewHolder viewHolder)
Method to be called by subclasses when an animation is finished.
 For each call RecyclerView makes to
 animateAppearance(),
 animatePersistence(), or
 animateDisappearance(), there
 should
 be a matching dispatchAnimationFinished(ViewHolder) call by the subclass.
 
 For animateChange(), subclass should call this method for both the oldHolder
 and newHolder  (if they are not the same instance).
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder whose animation is finished. | 
See also:
dispatchAnimationStarted
void dispatchAnimationStarted (RecyclerView.ViewHolder viewHolder)
Method to be called by subclasses when an animation is started.
 For each call RecyclerView makes to
 animateAppearance(),
 animatePersistence(), or
 animateDisappearance(), there should be a matching
 dispatchAnimationStarted(ViewHolder) call by the subclass.
 
 For animateChange(), subclass should call this method for both the oldHolder
 and newHolder (if they are not the same instance).
 
 If your ItemAnimator decides not to animate a ViewHolder, it should call
 dispatchAnimationFinished(ViewHolder) without calling
 dispatchAnimationStarted(ViewHolder).
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder whose animation is starting. | 
See also:
dispatchAnimationsFinished
void dispatchAnimationsFinished ()
This method should be called by ItemAnimator implementations to notify any listeners that all pending and active item animations are finished.
endAnimation
void endAnimation (RecyclerView.ViewHolder item)
Method called when an animation on a view should be ended immediately.
 This could happen when other events, like scrolling, occur, so that
 animating views can be quickly put into their proper end locations.
 Implementations should ensure that any animations running on the item
 are canceled and affected properties are set to their end values.
 Also, dispatchAnimationFinished(ViewHolder) should be called for each finished
 animation since the animations are effectively done when this method is called.
| Parameters | |
|---|---|
| item | RecyclerView.ViewHolder: The item for which an animation should be stopped. | 
endAnimations
void endAnimations ()
Method called when all item animations should be ended immediately.
 This could happen when other events, like scrolling, occur, so that
 animating views can be quickly put into their proper end locations.
 Implementations should ensure that any animations running on any items
 are canceled and affected properties are set to their end values.
 Also, dispatchAnimationFinished(ViewHolder) should be called for each finished
 animation since the animations are effectively done when this method is called.
getAddDuration
long getAddDuration ()
Gets the current duration for which all add animations will run.
| Returns | |
|---|---|
| long | The current add duration | 
getChangeDuration
long getChangeDuration ()
Gets the current duration for which all change animations will run.
| Returns | |
|---|---|
| long | The current change duration | 
getMoveDuration
long getMoveDuration ()
Gets the current duration for which all move animations will run.
| Returns | |
|---|---|
| long | The current move duration | 
getRemoveDuration
long getRemoveDuration ()
Gets the current duration for which all remove animations will run.
| Returns | |
|---|---|
| long | The current remove duration | 
isRunning
boolean isRunning ()
Method which returns whether there are any item animations currently running. This method can be used to determine whether to delay other actions until animations end.
| Returns | |
|---|---|
| boolean | true if there are any item animations currently running, false otherwise. | 
isRunning
boolean isRunning (RecyclerView.ItemAnimator.ItemAnimatorFinishedListener listener)
Like isRunning(), this method returns whether there are any item
 animations currently running. Additionally, the listener passed in will be called
 when there are no item animations running, either immediately (before the method
 returns) if no animations are currently running, or when the currently running
 animations are finished.
 
Note that the listener is transient - it is either called immediately and not stored at all, or stored only until it is called when running animations are finished sometime later.
| Parameters | |
|---|---|
| listener | RecyclerView.ItemAnimator.ItemAnimatorFinishedListener: A listener to be called immediately if no animations are running
 or later when currently-running animations have finished. A null listener is
 equivalent to callingisRunning(). | 
| Returns | |
|---|---|
| boolean | true if there are any item animations currently running, false otherwise. | 
obtainHolderInfo
RecyclerView.ItemAnimator.ItemHolderInfo obtainHolderInfo ()
Returns a new RecyclerView.ItemAnimator.ItemHolderInfo which will be used to store information about the
 ViewHolder. This information will later be passed into animate** methods.
 
 You can override this method if you want to extend RecyclerView.ItemAnimator.ItemHolderInfo and provide
 your own instances.
| Returns | |
|---|---|
| RecyclerView.ItemAnimator.ItemHolderInfo | A new RecyclerView.ItemAnimator.ItemHolderInfo. | 
onAnimationFinished
void onAnimationFinished (RecyclerView.ViewHolder viewHolder)
Called after dispatchAnimationFinished(ViewHolder) is called by the
 ItemAnimator.
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder whose animation is finished. There might still be other
                   animations running on this ViewHolder. | 
See also:
onAnimationStarted
void onAnimationStarted (RecyclerView.ViewHolder viewHolder)
Called when a new animation is started on the given ViewHolder.
| Parameters | |
|---|---|
| viewHolder | RecyclerView.ViewHolder: The ViewHolder which started animating. Note that the ViewHolder
                   might already be animating and this might be another animation. | 
See also:
recordPostLayoutInformation
RecyclerView.ItemAnimator.ItemHolderInfo recordPostLayoutInformation (RecyclerView.State state, RecyclerView.ViewHolder viewHolder)
Called by the RecyclerView after the layout is complete. Item animator should record necessary information about the View's final state.
 The data returned from this method will be passed to the related animate**
 methods.
 
 The default implementation returns an RecyclerView.ItemAnimator.ItemHolderInfo which holds the bounds of
 the View.
| Parameters | |
|---|---|
| state | RecyclerView.State: The current State of RecyclerView which includes some useful data about
                   the layout that will be calculated. | 
| viewHolder | RecyclerView.ViewHolder: The ViewHolder whose information should be recorded. | 
| Returns | |
|---|---|
| RecyclerView.ItemAnimator.ItemHolderInfo | An ItemHolderInfo that preserves necessary information about the ViewHolder.
 This object will be passed back to related animate**methods when
 RecyclerView decides how items should be animated. | 
See also:
- recordPreLayoutInformation(State, ViewHolder, int, List)
- animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animateDisappearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animatePersistence(ViewHolder, ItemHolderInfo, ItemHolderInfo)
recordPreLayoutInformation
RecyclerView.ItemAnimator.ItemHolderInfo recordPreLayoutInformation (RecyclerView.State state, RecyclerView.ViewHolder viewHolder, int changeFlags, List<Object> payloads)
Called by the RecyclerView before the layout begins. Item animator should record necessary information about the View before it is potentially rebound, moved or removed.
 The data returned from this method will be passed to the related animate**
 methods.
 
Note that this method may be called after pre-layout phase if LayoutManager adds new Views to the layout in pre-layout pass.
 The default implementation returns an RecyclerView.ItemAnimator.ItemHolderInfo which holds the bounds of
 the View and the adapter change flags.
| Parameters | |
|---|---|
| state | RecyclerView.State: The current State of RecyclerView which includes some useful data
                    about the layout that will be calculated. | 
| viewHolder | RecyclerView.ViewHolder: The ViewHolder whose information should be recorded. | 
| changeFlags | int: Additional information about what changes happened in the Adapter
                    about the Item represented by this ViewHolder. For instance, if
                    item is deleted from the adapter,FLAG_REMOVEDwill be set. | 
| payloads | List: The payload list that was previously passed tonotifyItemChanged(int, Object)ornotifyItemRangeChanged(int, int, Object). | 
| Returns | |
|---|---|
| RecyclerView.ItemAnimator.ItemHolderInfo | An ItemHolderInfo instance that preserves necessary information about the
 ViewHolder. This object will be passed back to related animate**methods
 after layout is complete. | 
See also:
- recordPostLayoutInformation(State, ViewHolder)
- animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animateDisappearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo)
- animatePersistence(ViewHolder, ItemHolderInfo, ItemHolderInfo)
runPendingAnimations
void runPendingAnimations ()
Called when there are pending animations waiting to be started. This state
 is governed by the return values from
 animateAppearance(),
 animateChange()
 animatePersistence(), and
 animateDisappearance(), which inform the RecyclerView that the ItemAnimator wants to be
 called later to start the associated animations. runPendingAnimations() will be scheduled
 to be run on the next frame.
setAddDuration
void setAddDuration (long addDuration)
Sets the duration for which all add animations will run.
| Parameters | |
|---|---|
| addDuration | long: The add duration | 
setChangeDuration
void setChangeDuration (long changeDuration)
Sets the duration for which all change animations will run.
| Parameters | |
|---|---|
| changeDuration | long: The change duration | 
setMoveDuration
void setMoveDuration (long moveDuration)
Sets the duration for which all move animations will run.
| Parameters | |
|---|---|
| moveDuration | long: The move duration | 
setRemoveDuration
void setRemoveDuration (long removeDuration)
Sets the duration for which all remove animations will run.
| Parameters | |
|---|---|
| removeDuration | long: The remove duration | 
- Annotations
- Interfaces- ActionMenuView.OnMenuItemClickListener
- PopupMenu.OnDismissListener
- PopupMenu.OnMenuItemClickListener
- RecyclerView.ChildDrawingOrderCallback
- RecyclerView.ItemAnimator.ItemAnimatorFinishedListener
- RecyclerView.LayoutManager.LayoutPrefetchRegistry
- RecyclerView.OnChildAttachStateChangeListener
- RecyclerView.OnItemTouchListener
- RecyclerView.RecyclerListener
- RecyclerView.SmoothScroller.ScrollVectorProvider
- SearchView.OnCloseListener
- SearchView.OnQueryTextListener
- SearchView.OnSuggestionListener
- ShareActionProvider.OnShareTargetSelectedListener
- ThemedSpinnerAdapter
- Toolbar.OnMenuItemClickListener
 
- Classes- ActionMenuView
- ActionMenuView.LayoutParams
- AppCompatAutoCompleteTextView
- AppCompatButton
- AppCompatCheckBox
- AppCompatCheckedTextView
- AppCompatEditText
- AppCompatImageButton
- AppCompatImageView
- AppCompatMultiAutoCompleteTextView
- AppCompatRadioButton
- AppCompatRatingBar
- AppCompatSeekBar
- AppCompatSpinner
- AppCompatTextView
- CardView
- DefaultItemAnimator
- DividerItemDecoration
- GridLayout
- GridLayout.Alignment
- GridLayout.LayoutParams
- GridLayout.Spec
- GridLayoutManager
- GridLayoutManager.DefaultSpanSizeLookup
- GridLayoutManager.LayoutParams
- GridLayoutManager.SpanSizeLookup
- LinearLayoutCompat
- LinearLayoutCompat.LayoutParams
- LinearLayoutManager
- LinearLayoutManager.LayoutChunkResult
- LinearSmoothScroller
- LinearSnapHelper
- ListPopupWindow
- OrientationHelper
- PagerSnapHelper
- PopupMenu
- RecyclerView
- RecyclerView.Adapter
- RecyclerView.AdapterDataObserver
- RecyclerView.EdgeEffectFactory
- RecyclerView.ItemAnimator
- RecyclerView.ItemAnimator.ItemHolderInfo
- RecyclerView.ItemDecoration
- RecyclerView.LayoutManager
- RecyclerView.LayoutManager.Properties
- RecyclerView.LayoutParams
- RecyclerView.OnFlingListener
- RecyclerView.OnScrollListener
- RecyclerView.RecycledViewPool
- RecyclerView.Recycler
- RecyclerView.SimpleOnItemTouchListener
- RecyclerView.SmoothScroller
- RecyclerView.SmoothScroller.Action
- RecyclerView.State
- RecyclerView.ViewCacheExtension
- RecyclerView.ViewHolder
- RecyclerViewAccessibilityDelegate
- RecyclerViewAccessibilityDelegate.ItemDelegate
- SearchView
- ShareActionProvider
- SimpleItemAnimator
- SnapHelper
- StaggeredGridLayoutManager
- StaggeredGridLayoutManager.LayoutParams
- SwitchCompat
- ThemedSpinnerAdapter.Helper
- Toolbar
- Toolbar.LayoutParams
- Toolbar.SavedState
- TooltipCompat
 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
