public abstract class SimpleItemAnimator
extends RecyclerView.ItemAnimator
| java.lang.Object | ||
| android.support.v7.widget.RecyclerView.ItemAnimator | ||
| android.support.v7.widget.SimpleItemAnimator | ||
| |
ItemAnimator的包装类,用于记录视图边界并决定是否应该运行移动,更改,添加或移除动画。 该类还复制了原始的ItemAnimator API。
它使用RecyclerView.ItemAnimator.ItemHolderInfo来跟踪视图的边界信息。 如果你想扩展这个类,你可以覆盖obtainHolderInfo()方法来提供你自己的信息类,扩展RecyclerView.ItemAnimator.ItemHolderInfo 。
Inherited constants |
|---|
android.support.v7.widget.RecyclerView.ItemAnimator
|
Public constructors |
|
|---|---|
SimpleItemAnimator() |
|
公共方法(Public methods) |
|
|---|---|
abstract boolean |
animateAdd(RecyclerView.ViewHolder holder) 在将项目添加到RecyclerView时调用。 |
boolean |
animateAppearance(RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo) 当ViewHolder添加到布局时,由RecyclerView调用。 |
abstract boolean |
animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromLeft, int fromTop, int toLeft, int toTop) 在RecyclerView中更改项目时调用,如调用 |
boolean |
animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, RecyclerView.ItemAnimator.ItemHolderInfo preInfo, RecyclerView.ItemAnimator.ItemHolderInfo postInfo) 在布局和RecyclerView收到 |
boolean |
animateDisappearance(RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo) 当ViewHolder从布局中消失时,由RecyclerView调用。 |
abstract boolean |
animateMove(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) 在RecyclerView中移动项目时调用。 |
boolean |
animatePersistence(RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preInfo, RecyclerView.ItemAnimator.ItemHolderInfo postInfo) 当布局和RecyclerView未收到 |
abstract boolean |
animateRemove(RecyclerView.ViewHolder holder) 从RecyclerView中删除一个项目时调用。 |
boolean |
canReuseUpdatedViewHolder(RecyclerView.ViewHolder viewHolder) 当一个项目被改变时,ItemAnimator可以决定是否要为动画重用相同的ViewHolder,或者RecyclerView应该创建该项目的副本,并且ItemAnimator将使用两者来运行动画(例如 |
final void |
dispatchAddFinished(RecyclerView.ViewHolder item) 添加动画完成时由子类调用的方法。 |
final void |
dispatchAddStarting(RecyclerView.ViewHolder item) 在添加动画开始时由子类调用的方法。 |
final void |
dispatchChangeFinished(RecyclerView.ViewHolder item, boolean oldItem) 当更改动画完成时由子类调用的方法。 |
final void |
dispatchChangeStarting(RecyclerView.ViewHolder item, boolean oldItem) 在变更动画开始时由子类调用的方法。 |
final void |
dispatchMoveFinished(RecyclerView.ViewHolder item) 移动动画完成时由子类调用的方法。 |
final void |
dispatchMoveStarting(RecyclerView.ViewHolder item) 在移动动画开始时由子类调用的方法。 |
final void |
dispatchRemoveFinished(RecyclerView.ViewHolder item) 删除动画完成时由子类调用的方法。 |
final void |
dispatchRemoveStarting(RecyclerView.ViewHolder item) 在删除动画开始时由子类调用的方法。 |
boolean |
getSupportsChangeAnimations() 返回此ItemAnimator是否支持更改事件的动画。 |
void |
onAddFinished(RecyclerView.ViewHolder item) 在给定ViewHolder上添加动画结束时调用。 |
void |
onAddStarting(RecyclerView.ViewHolder item) 在给定的ViewHolder上开始添加动画时调用。 |
void |
onChangeFinished(RecyclerView.ViewHolder item, boolean oldItem) 在给定ViewHolder上更改动画结束时调用。 |
void |
onChangeStarting(RecyclerView.ViewHolder item, boolean oldItem) 在给定ViewHolder上启动更改动画时调用。 |
void |
onMoveFinished(RecyclerView.ViewHolder item) 在给定ViewHolder上移动动画结束时调用。 |
void |
onMoveStarting(RecyclerView.ViewHolder item) 在给定ViewHolder上开始移动动画时调用。 |
void |
onRemoveFinished(RecyclerView.ViewHolder item) 在给定的ViewHolder上移除动画结束时调用。 |
void |
onRemoveStarting(RecyclerView.ViewHolder item) 在给定的ViewHolder上启动删除动画时调用。 |
void |
setSupportsChangeAnimations(boolean supportsChangeAnimations) 设置此ItemAnimator是否支持项目更改事件的动画。 |
继承方法(Inherited methods) |
|
|---|---|
android.support.v7.widget.RecyclerView.ItemAnimator
|
|
java.lang.Object
|
|
SimpleItemAnimator ()
boolean animateAdd (RecyclerView.ViewHolder holder)
在将项目添加到RecyclerView时调用。 实现者可以选择是否以及如何动画该变化,但必须在完成后始终调用dispatchAddFinished(ViewHolder) ,或者立即(如果不发生动画)或动画实际完成后调用dispatchAddFinished(ViewHolder) 。 返回值表示动画是否已经成立,以及是否ItemAnimator的runPendingAnimations()方法应该在下次有机会被调用。 这种机制允许ItemAnimator个别动画作为单独的电话设置为animateAdd() , animateMove() , animateRemove() ,并animateChange(ViewHolder, ViewHolder, int, int, int, int)进来一个接一个,然后到后来的呼叫启动动画一起runPendingAnimations() 。
这个方法也可能被调用来显示已经在RecyclerView中的项目,但是系统没有足够的信息来将它们动画到视图中。 在这种情况下,添加项目的默认动画也会在这些项目上运行。
| 参数(Parameters) | |
|---|---|
holder |
RecyclerView.ViewHolder: The item that is being added. |
| 返回(Returns) | |
|---|---|
boolean |
true if a later call to runPendingAnimations() is requested, false otherwise. |
boolean animateAppearance (RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo)
当ViewHolder添加到布局时,由RecyclerView调用。
详细来说,这意味着ViewHolder在布局开始时不是孩子,而是由LayoutManager添加的。 它可能是新添加到适配器或由于其他因素而变得可见。
ItemAnimator必须在动画完成时调用 dispatchAnimationFinished(ViewHolder) (或者如果决定不动画视图,则立即调用 dispatchAnimationFinished(ViewHolder) )。
| 参数(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. |
boolean animateChange (RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromLeft, int fromTop, int toLeft, int toTop)
在RecyclerView中更改项目时调用,如调用 notifyItemChanged(int)或 notifyItemRangeChanged(int, int) 。
实施者可以选择是否和如何制作动画的变化,但必须随时拨打dispatchChangeFinished(ViewHolder, boolean)每个非空不同ViewHolder,可以立即(如果不会出现动画)或动画后实际完成。 如果oldHolder与oldHolder是相同的newHolder ,则必须一次且仅调用一次dispatchChangeFinished(ViewHolder, boolean) 。 在这种情况下,第二个参数dispatchChangeFinished被忽略。
返回值指示是否已经设置了动画以及是否应该在下一次调用runPendingAnimations()方法runPendingAnimations()方法。 这种机制允许ItemAnimator个别动画作为单独的电话设置为animateAdd() , animateMove() , animateRemove() ,并animateChange(ViewHolder, ViewHolder, int, int, int, int)进来一个接一个,然后到后来的呼叫启动动画一起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. |
boolean animateChange (RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, RecyclerView.ItemAnimator.ItemHolderInfo preInfo, RecyclerView.ItemAnimator.ItemHolderInfo postInfo)
在布局和RecyclerView收到notifyItemChanged(int)调用之前和之后,当适配器项存在时,由RecyclerView调用。 当调用notifyDataSetChanged()并且适配器具有稳定的ID时,也可以调用此方法,以便RecyclerView仍然可以将视图重新绑定到相同的ViewHolders。 如果viewType当改变notifyDataSetChanged()被调用时,此方法将不会被调用,而是animateAppearance(ViewHolder, ItemHolderInfo, ItemHolderInfo)将被称为新ViewHolder和旧的将被回收。
如果由于调用notifyDataSetChanged()调用此方法,则很有可能项目内容没有真正改变,但它会从适配器中反弹。 如果屏幕上的位置没有改变,那么DefaultItemAnimator会跳过视图的动画,并且动画师也应该处理这种情况,并避免创建不必要的动画。
当一个项目被更新时,ItemAnimator有机会要求RecyclerView保持原来的项目呈现状态,并为更新的演示文稿提供一个新的ViewHolder(参见: canReuseUpdatedViewHolder(ViewHolder, List) 。如果您不知道该项目,并希望交叉淡出旧的和新的( DefaultItemAnimator使用这种技术)。
当您为自己的布局编写自定义项目动画时,重新使用相同的ViewHolder并手动为内容更改设置动画效果可能更具性能和优雅。
当notifyItemChanged(int) ,项目的视图类型可能会更改。 如果项目的视图类型已更改或ItemAnimator返回false这个ViewHolder时canReuseUpdatedViewHolder(ViewHolder, List)被调用时, oldHolder和newHolder会有所不同ViewHolder实例代表相同的项目。 在这种情况下,只有新的ViewHolder对LayoutManager可见,但RecyclerView会为动画添加旧的ViewHolder。
ItemAnimator必须调用 dispatchAnimationFinished(ViewHolder)为每个不同的ViewHolder当他们的动画完成(或迅速调 dispatchAnimationFinished(ViewHolder) ,如果它决定不动画视图)。
如果oldHolder和newHolder是同一个实例,则应该 只调用 一次 dispatchAnimationFinished(ViewHolder) 。
请注意,当ViewHolder同时在同一布局传递中更改并消失时,RecyclerView将调用的动画回调方法取决于ItemAnimator是否重新使用相同ViewHolder的决定,也取决于LayoutManager是否布局消失的ViewHolder的更改版本与否。 RecyclerView将调用animateChange代替animateDisappearance ,当且仅当ItemAnimator返回false从canReuseUpdatedViewHolder和布局管理勾画出保存更新的信息的新视图消失。 内置的LayoutManagers尽量避免布置消失视图的更新版本。
| 参数(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. |
preInfo |
RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned from recordPreLayoutInformation(State, ViewHolder, int, List). |
postInfo |
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. |
boolean animateDisappearance (RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preLayoutInfo, RecyclerView.ItemAnimator.ItemHolderInfo postLayoutInfo)
当ViewHolder从布局中消失时,由RecyclerView调用。
这意味着当布局启动时,View是LayoutManager的一个子元素,但已被LayoutManager删除。 它可能已从适配器中删除,或者由于其他因素而变得不可见。 您可以通过检查传递给recordPreLayoutInformation(State, ViewHolder, int, List)的更改标志来区分这两种情况。
请注意,当ViewHolder同时在同一布局传递中更改并消失时,RecyclerView将调用的动画回调方法取决于ItemAnimator是否重新使用相同ViewHolder的决定,也取决于LayoutManager是否布局消失的ViewHolder的更改版本与否。 当且仅当false从canReuseUpdatedViewHolder返回false ,并且LayoutManager布局一个新的消失视图以保存更新的信息时,RecyclerView将调用animateChange而不是animateDisappearance 。 内置的LayoutManagers尽量避免布置消失视图的更新版本。
如果LayoutManager支持预测动画,则可以通过将视图放置在该位置来为视图提供目标消失位置。 当发生这种情况时,RecyclerView将调用recordPostLayoutInformation(State, ViewHolder) ,该调用的响应将作为postLayoutInfo传递给此方法。
ItemAnimator在动画完成时必须调用 dispatchAnimationFinished(ViewHolder) (或者如果决定不动画视图,则立即调用 dispatchAnimationFinished(ViewHolder) )。
| 参数(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). |
postLayoutInfo |
RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned from recordPostLayoutInformation(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. |
boolean animateMove (RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY)
在RecyclerView中移动项目时调用。 实现者可以选择是否以及如何为该变更设置动画,但是在完成后必须始终调用dispatchMoveFinished(ViewHolder) ,或者立即(如果没有动画发生)或动画实际完成后调用。 返回值表示是否已经设置了动画,以及是否应该在下一次调用runPendingAnimations()方法runPendingAnimations()方法。 这种机制允许ItemAnimator个别动画作为单独的电话设置为animateAdd() , animateMove() , animateRemove() ,并animateChange(ViewHolder, ViewHolder, int, int, int, int)进来一个接一个,然后到后来的呼叫启动动画一起runPendingAnimations() 。
| 参数(Parameters) | |
|---|---|
holder |
RecyclerView.ViewHolder: The item that is being moved. |
fromX |
int
|
fromY |
int
|
toX |
int
|
toY |
int
|
| 返回(Returns) | |
|---|---|
boolean |
true if a later call to runPendingAnimations() is requested, false otherwise. |
boolean animatePersistence (RecyclerView.ViewHolder viewHolder, RecyclerView.ItemAnimator.ItemHolderInfo preInfo, RecyclerView.ItemAnimator.ItemHolderInfo postInfo)
在布局和RecyclerView尚未收到 notifyItemChanged(int)呼叫或 notifyDataSetChanged()呼叫之前和之后,如果ViewHolder存在, notifyDataSetChanged()调用。
这个ViewHolder仍然代表与布局开始时代表的数据相同的数据,但其布局管理器可以更改其位置/大小。
如果项目的布局位置没有改变,RecyclerView仍然会调用这个方法,因为它不会跟踪这些信息(或者不一定知道不需要动画)。 你的ItemAnimator应该处理这种情况,如果没有任何动画,它应该调用dispatchAnimationFinished(ViewHolder)并返回false 。
当动画完成时ItemAnimator必须调用 dispatchAnimationFinished(ViewHolder) (或者如果决定不动画视图,则立即调用 dispatchAnimationFinished(ViewHolder) )。
| 参数(Parameters) | |
|---|---|
viewHolder |
RecyclerView.ViewHolder: The ViewHolder which should be animated |
preInfo |
RecyclerView.ItemAnimator.ItemHolderInfo: The information that was returned from recordPreLayoutInformation(State, ViewHolder, int, List). |
postInfo |
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. |
boolean animateRemove (RecyclerView.ViewHolder holder)
从RecyclerView中删除一个项目时调用。 实现者可以选择是否以及如何动画变化,但是在完成时必须始终调用dispatchRemoveFinished(ViewHolder) ,或者立即(如果不发生动画)或动画实际完成后调用dispatchRemoveFinished(ViewHolder) 。 返回值表示动画是否已经建立以及是否应该在下一次调用runPendingAnimations()方法runPendingAnimations() 。 这种机制允许ItemAnimator个别动画作为单独的电话设置为animateAdd() , animateMove() , animateRemove() ,并animateChange(ViewHolder, ViewHolder, int, int, int, int)进来一个接一个,然后到后来的呼叫启动动画一起runPendingAnimations() 。
这种方法也可以用于RecyclerView中继续存在但消失的项目,但系统没有足够的信息将它们设置为不可见。 在这种情况下,移除项目的默认动画也会在这些项目上运行。
| 参数(Parameters) | |
|---|---|
holder |
RecyclerView.ViewHolder: The item that is being removed. |
| 返回(Returns) | |
|---|---|
boolean |
true if a later call to runPendingAnimations() is requested, false otherwise. |
boolean canReuseUpdatedViewHolder (RecyclerView.ViewHolder viewHolder)
当一个项目被更改时,ItemAnimator可以决定是否要为动画重用相同的ViewHolder,或者RecyclerView应该创建该项目的副本,并且ItemAnimator将使用两者来运行动画(例如交叉渐变)。
请注意,只有在RecyclerView.ViewHolder仍具有相同类型( getItemViewType(int) )时才会调用此方法。 否则,ItemAnimator将始终以animateChange(ViewHolder, ViewHolder, ItemHolderInfo, ItemHolderInfo)方法接收两个RecyclerView.ViewHolder 。
如果您的应用程序正在使用更改有效内容,则可以覆盖 canReuseUpdatedViewHolder(ViewHolder, List)以根据有效 canReuseUpdatedViewHolder(ViewHolder, List)进行确定。
| 参数(Parameters) | |
|---|---|
viewHolder |
RecyclerView.ViewHolder: The ViewHolder which represents the changed item's old content. |
| 返回(Returns) | |
|---|---|
boolean |
True if change animations are not supported or the ViewHolder is invalid, false otherwise. |
void dispatchAddFinished (RecyclerView.ViewHolder item)
添加动画完成时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item which has been added |
void dispatchAddStarting (RecyclerView.ViewHolder item)
在添加动画开始时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item being added |
void dispatchChangeFinished (RecyclerView.ViewHolder item, boolean oldItem)
当更改动画完成时由子类调用的方法。
| 参数(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)). |
oldItem |
boolean: true if this is the old item that was changed, false if it is the new item that replaced the old item. |
void dispatchChangeStarting (RecyclerView.ViewHolder item, boolean oldItem)
在变更动画开始时由子类调用的方法。
| 参数(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)). |
oldItem |
boolean: true if this is the old item that was changed, false if it is the new item that replaced the old item. |
void dispatchMoveFinished (RecyclerView.ViewHolder item)
移动动画完成时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item which has been moved |
void dispatchMoveStarting (RecyclerView.ViewHolder item)
在移动动画开始时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item being moved |
void dispatchRemoveFinished (RecyclerView.ViewHolder item)
删除动画完成时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item which has been removed |
void dispatchRemoveStarting (RecyclerView.ViewHolder item)
在删除动画开始时由子类调用的方法。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The item being removed |
boolean getSupportsChangeAnimations ()
返回此ItemAnimator是否支持更改事件的动画。
| 返回(Returns) | |
|---|---|
boolean |
true if change animations are supported, false otherwise |
void onAddFinished (RecyclerView.ViewHolder item)
在给定ViewHolder上添加动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void onAddStarting (RecyclerView.ViewHolder item)
在给定的ViewHolder上开始添加动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void onChangeFinished (RecyclerView.ViewHolder item, boolean oldItem)
在给定ViewHolder上更改动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
oldItem |
boolean: true if this is the old item that was changed, false if it is the new item that replaced the old item. |
void onChangeStarting (RecyclerView.ViewHolder item, boolean oldItem)
在给定ViewHolder上启动更改动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
oldItem |
boolean: true if this is the old item that was changed, false if it is the new item that replaced the old item. |
void onMoveFinished (RecyclerView.ViewHolder item)
在给定ViewHolder上移动动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void onMoveStarting (RecyclerView.ViewHolder item)
在给定ViewHolder上开始移动动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void onRemoveFinished (RecyclerView.ViewHolder item)
在给定的ViewHolder上移除动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void onRemoveStarting (RecyclerView.ViewHolder item)
在给定的ViewHolder上启动删除动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。
| 参数(Parameters) | |
|---|---|
item |
RecyclerView.ViewHolder: The ViewHolder being animated. |
void setSupportsChangeAnimations (boolean supportsChangeAnimations)
设置此ItemAnimator是否支持项目更改事件的动画。 如果您将此属性设置为false,则更改项目内容的数据集上的操作将不会生成动画。 这些动画在animateChange(ViewHolder, ViewHolder, int, int, int, int)实现中由ItemAnimator子类自行决定。 该属性的值默认为true。
| 参数(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) when changes occur. |