java.lang.Object | |
↳ | android.support.v7.widget.RecyclerView.ItemAnimator |
Known Direct 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 the appropriate "Starting"
(dispatchRemoveStarting(ViewHolder)
, dispatchMoveStarting(ViewHolder)
,
dispatchChangeStarting(ViewHolder, boolean)
, or
dispatchAddStarting(ViewHolder)
)
and "Finished" (dispatchRemoveFinished(ViewHolder)
,
dispatchMoveFinished(ViewHolder)
,
dispatchChangeFinished(ViewHolder, boolean)
,
or dispatchAddFinished(ViewHolder)
) methods when each item animation is
being started and ended.
By default, RecyclerView uses DefaultItemAnimator
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
RecyclerView.ItemAnimator.ItemAnimatorFinishedListener | This interface is used to inform listeners when all pending or running animations in an ItemAnimator are finished. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Called when an item is added to the RecyclerView.
| |||||||||||
Called when an item is changed in the RecyclerView, as indicated by a call to
notifyItemChanged(int) or
notifyItemRangeChanged(int, int) .
| |||||||||||
Called when an item is moved in the RecyclerView.
| |||||||||||
Called when an item is removed from the RecyclerView.
| |||||||||||
Method to be called by subclasses when an add animation is done.
| |||||||||||
Method to be called by subclasses when an add animation is being started.
| |||||||||||
This method should be called by ItemAnimator implementations to notify
any listeners that all pending and active item animations are finished.
| |||||||||||
Method to be called by subclasses when a change animation is done.
| |||||||||||
Method to be called by subclasses when a change animation is being started.
| |||||||||||
Method to be called by subclasses when a move animation is done.
| |||||||||||
Method to be called by subclasses when a move animation is being started.
| |||||||||||
Method to be called by subclasses when a remove animation is done.
| |||||||||||
Method to be called by subclasses when a remove animation is being started.
| |||||||||||
Method called when an animation on a view should be ended immediately.
| |||||||||||
Method called when all item animations should be ended immediately.
| |||||||||||
Gets the current duration for which all add animations will run.
| |||||||||||
Gets the current duration for which all change animations will run.
| |||||||||||
Gets the current duration for which all move animations will run.
| |||||||||||
Gets the current duration for which all remove animations will run.
| |||||||||||
Returns whether this ItemAnimator supports animations of change events.
| |||||||||||
Like
isRunning() , this method returns whether there are any item
animations currently running.
| |||||||||||
Method which returns whether there are any item animations currently running.
| |||||||||||
Called when an add animation has ended on the given ViewHolder.
| |||||||||||
Called when an add animation is being started on the given ViewHolder.
| |||||||||||
Called when a change animation has ended on the given ViewHolder.
| |||||||||||
Called when a change animation is being started on the given ViewHolder.
| |||||||||||
Called when a move animation has ended on the given ViewHolder.
| |||||||||||
Called when a move animation is being started on the given ViewHolder.
| |||||||||||
Called when a remove animation has ended on the given ViewHolder.
| |||||||||||
Called when a remove animation is being started on the given ViewHolder.
| |||||||||||
Called when there are pending animations waiting to be started.
| |||||||||||
Sets the duration for which all add animations will run.
| |||||||||||
Sets the duration for which all change animations will run.
| |||||||||||
Sets the duration for which all move animations will run.
| |||||||||||
Sets the duration for which all remove animations will run.
| |||||||||||
Sets whether this ItemAnimator supports animations of item change events.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
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)
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()
method should be called at the
next opportunity. This mechanism allows ItemAnimator to set up individual animations
as separate calls to animateAdd()
,
animateMove()
,
animateRemove()
, and
animateChange(ViewHolder, ViewHolder, int, int, int, int)
come in one by one,
then start the animations together in the later call to 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.
holder | The item that is being added. |
---|
runPendingAnimations()
is requested,
false otherwise.
Called when an item is changed in the RecyclerView, as indicated by a call to
notifyItemChanged(int)
or
notifyItemRangeChanged(int, int)
.
Implementers can choose whether and how to animate changes, but must always call
dispatchChangeFinished(ViewHolder, boolean)
for each non-null ViewHolder,
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()
method should be called at the
next opportunity. This mechanism allows ItemAnimator to set up individual animations
as separate calls to animateAdd()
,
animateMove()
,
animateRemove()
, and
animateChange(ViewHolder, ViewHolder, int, int, int, int)
come in one by one,
then start the animations together in the later call to runPendingAnimations()
.
oldHolder | The original item that changed. |
---|---|
newHolder | The new item that was created with the changed content. Might be null |
fromLeft | Left of the old view holder |
fromTop | Top of the old view holder |
toLeft | Left of the new view holder |
toTop | Top of the new view holder |
runPendingAnimations()
is requested,
false otherwise.
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)
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()
method should be called at the
next opportunity. This mechanism allows ItemAnimator to set up individual animations
as separate calls to animateAdd()
,
animateMove()
,
animateRemove()
, and
animateChange(ViewHolder, ViewHolder, int, int, int, int)
come in one by one,
then start the animations together in the later call to runPendingAnimations()
.
holder | The item that is being moved. |
---|
runPendingAnimations()
is requested,
false otherwise.
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)
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()
method should be called at the
next opportunity. This mechanism allows ItemAnimator to set up individual animations
as separate calls to animateAdd()
,
animateMove()
,
animateRemove()
, and
animateChange(ViewHolder, ViewHolder, int, int, int, int)
come in one by one,
then start the animations together in the later call to 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.
holder | The item that is being removed. |
---|
runPendingAnimations()
is requested,
false otherwise.
Method to be called by subclasses when an add animation is done.
item | The item which has been added |
---|
Method to be called by subclasses when an add animation is being started.
item | The item being added |
---|
This method should be called by ItemAnimator implementations to notify any listeners that all pending and active item animations are finished.
Method to be called by subclasses when a change animation is done.
item | 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) ). |
---|---|
oldItem | true if this is the old item that was changed, false if it is the new item that replaced the old item. |
Method to be called by subclasses when a change animation is being started.
item | 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) ). |
---|---|
oldItem | true if this is the old item that was changed, false if it is the new item that replaced the old item. |
Method to be called by subclasses when a move animation is done.
item | The item which has been moved |
---|
Method to be called by subclasses when a move animation is being started.
item | The item being moved |
---|
Method to be called by subclasses when a remove animation is done.
item | The item which has been removed |
---|
Method to be called by subclasses when a remove animation is being started.
item | The item being removed |
---|
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, appropriate dispatch methods (e.g., dispatchAddFinished(ViewHolder)
should be called since the animations are effectively done when this
method is called.
item | The item for which an animation should be stopped. |
---|
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, appropriate dispatch methods (e.g., dispatchAddFinished(ViewHolder)
should be called since the animations are effectively done when this
method is called.
Gets the current duration for which all add animations will run.
Gets the current duration for which all change animations will run.
Gets the current duration for which all move animations will run.
Gets the current duration for which all remove animations will run.
Returns whether this ItemAnimator supports animations of change events.
Like isRunning()
, this method returns whether there are any item
animations currently running. Addtionally, 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.
listener | 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 calling 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.
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.
item | The ViewHolder being animated. |
---|
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.
item | The ViewHolder being animated. |
---|
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.
item | The ViewHolder being animated. |
---|---|
oldItem | true if this is the old item that was changed, false if it is the new item that replaced the old item. |
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.
item | The ViewHolder being animated. |
---|---|
oldItem | true if this is the old item that was changed, false if it is the new item that replaced the old 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.
item | The ViewHolder being animated. |
---|
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.
item | The ViewHolder being animated. |
---|
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.
item | The ViewHolder being animated. |
---|
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.
item | The ViewHolder being animated. |
---|
Called when there are pending animations waiting to be started. This state
is governed by the return values from animateAdd()
,
animateMove()
, and
animateRemove()
, 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.
Sets the duration for which all add animations will run.
addDuration | The add duration |
---|
Sets the duration for which all change animations will run.
changeDuration | The change duration |
---|
Sets the duration for which all move animations will run.
moveDuration | The move duration |
---|
Sets the duration for which all remove animations will run.
removeDuration | The remove duration |
---|
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 are is left
up to the discretion of the ItemAnimator subclass, in its
animateChange(ViewHolder, ViewHolder, int, int, int, int)
implementation.
The value of this property is true by default.
supportsChangeAnimations | 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) when changes occur.
|
---|