belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1
SimpleItemAnimator
public
abstract
class
SimpleItemAnimator
extends RecyclerView.ItemAnimator
java.lang.Object | ||
↳ | android.support.v7.widget.RecyclerView.ItemAnimator | |
↳ | android.support.v7.widget.SimpleItemAnimator |
![]() |
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
to track the bounds information of the Views. If you would like
to
extend this class, you can override obtainHolderInfo()
method to provide your own info
class that extends RecyclerView.ItemAnimator.ItemHolderInfo
.
Summary
Inherited constants |
---|
![]()
android.support.v7.widget.RecyclerView.ItemAnimator
|
Public constructors | |
---|---|
SimpleItemAnimator()
|
Public methods | |
---|---|
abstract
boolean
|
animateAdd(RecyclerView.ViewHolder holder)
Called when an item is added to the RecyclerView. |
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, int fromLeft, int fromTop, int toLeft, int toTop)
Called when an item is changed in the RecyclerView, as indicated by a call to
|
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 |
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
|
animateMove(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY)
Called when an item is moved in the RecyclerView. |
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 |
abstract
boolean
|
animateRemove(RecyclerView.ViewHolder holder)
Called when an item is removed from the RecyclerView. |
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
|
dispatchAddFinished(RecyclerView.ViewHolder item)
Method to be called by subclasses when an add animation is done. |
final
void
|
dispatchAddStarting(RecyclerView.ViewHolder item)
Method to be called by subclasses when an add animation is being started. |
final
void
|
dispatchChangeFinished(RecyclerView.ViewHolder item, boolean oldItem)
Method to be called by subclasses when a change animation is done. |
final
void
|
dispatchChangeStarting(RecyclerView.ViewHolder item, boolean oldItem)
Method to be called by subclasses when a change animation is being started. |
final
void
|
dispatchMoveFinished(RecyclerView.ViewHolder item)
Method to be called by subclasses when a move animation is done. |
final
void
|
dispatchMoveStarting(RecyclerView.ViewHolder item)
Method to be called by subclasses when a move animation is being started. |
final
void
|
dispatchRemoveFinished(RecyclerView.ViewHolder item)
Method to be called by subclasses when a remove animation is done. |
final
void
|
dispatchRemoveStarting(RecyclerView.ViewHolder item)
Method to be called by subclasses when a remove animation is being started. |
boolean
|
getSupportsChangeAnimations()
Returns whether this ItemAnimator supports animations of change events. |
void
|
onAddFinished(RecyclerView.ViewHolder item)
Called when an add animation has ended on the given ViewHolder. |
void
|
onAddStarting(RecyclerView.ViewHolder item)
Called when an add animation is being started on the given ViewHolder. |
void
|
onChangeFinished(RecyclerView.ViewHolder item, boolean oldItem)
Called when a change animation has ended on the given ViewHolder. |
void
|
onChangeStarting(RecyclerView.ViewHolder item, boolean oldItem)
Called when a change animation is being started on the given ViewHolder. |
void
|
onMoveFinished(RecyclerView.ViewHolder item)
Called when a move animation has ended on the given ViewHolder. |
void
|
onMoveStarting(RecyclerView.ViewHolder item)
Called when a move animation is being started on the given ViewHolder. |
void
|
onRemoveFinished(RecyclerView.ViewHolder item)
Called when a remove animation has ended on the given ViewHolder. |
void
|
onRemoveStarting(RecyclerView.ViewHolder item)
Called when a remove animation is being started on the given ViewHolder. |
void
|
setSupportsChangeAnimations(boolean supportsChangeAnimations)
Sets whether this ItemAnimator supports animations of item change events. |
Inherited methods | |
---|---|
![]()
android.support.v7.widget.RecyclerView.ItemAnimator
| |
![]()
java.lang.Object
|
Public constructors
Public methods
animateAdd
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)
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.
Parameters | |
---|---|
holder |
RecyclerView.ViewHolder : The item that is being added. |
Returns | |
---|---|
boolean |
true if a later call to runPendingAnimations() is requested,
false otherwise.
|
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 from
recordPreLayoutInformation(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 from recordPreLayoutInformation(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, 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)
or
notifyItemRangeChanged(int, int)
.
Implementers can choose whether and how to animate changes, but must always call
dispatchChangeFinished(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)
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()
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()
.
Parameters | |
---|---|
oldHolder |
RecyclerView.ViewHolder : The original item that changed. |
newHolder |
RecyclerView.ViewHolder : The new item that was created with the changed content. Might be null |
fromLeft |
int : Left of the old view holder |
fromTop |
int : Top of the old view holder |
toLeft |
int : Left of the new view holder |
toTop |
int : Top of the new view holder |
Returns | |
---|---|
boolean |
true if a later call to runPendingAnimations() is requested,
false otherwise.
|