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 |
![]() |
![]() |
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.AdapterChanges
The set of flags that might be passed to
|
interface |
RecyclerView.ItemAnimator.ItemAnimatorFinishedListener
This interface is used to inform listeners when all pending or running animations in an ItemAnimator are finished. |
class |
RecyclerView.ItemAnimator.ItemHolderInfo
A simple data structure that holds information about an item's bounds. |
Constants | |
---|---|
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 |
int |
FLAG_CHANGED
The Item represented by this ViewHolder is updated. |
int |
FLAG_INVALIDATED
Adapter |
int |
FLAG_MOVED
The position of the Item represented by this ViewHolder has been changed. |
int |
FLAG_REMOVED
The 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 | |
---|---|
![]()
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 |