Most visited

Recently visited

SimpleItemAnimator

public abstract class SimpleItemAnimator
extends RecyclerView.ItemAnimator

java.lang.Object
   ↳ android.support.v7.widget.RecyclerView.ItemAnimator
     ↳ android.support.v7.widget.SimpleItemAnimator
Known Direct Subclasses


ItemAnimator的包装类,用于记录视图边界并决定是否应该运行移动,更改,添加或移除动画。 该类还复制了原始的ItemAnimator API。

它使用RecyclerView.ItemAnimator.ItemHolderInfo来跟踪视图的边界信息。 如果你想扩展这个类,你可以覆盖obtainHolderInfo()方法来提供你自己的信息类,扩展RecyclerView.ItemAnimator.ItemHolderInfo

Summary

Inherited constants

From class 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中更改项目时调用,如调用 notifyItemChanged(int)notifyItemRangeChanged(int, int)

boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, RecyclerView.ItemAnimator.ItemHolderInfo preInfo, RecyclerView.ItemAnimator.ItemHolderInfo postInfo)

在布局和RecyclerView收到 notifyItemChanged(int)调用之前和之后,当适配器项存在时,由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未收到 notifyItemChanged(int)呼叫或 notifyDataSetChanged()呼叫之前和之后ViewHolder都存在时,由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

From class android.support.v7.widget.RecyclerView.ItemAnimator
From class java.lang.Object

Public constructors

SimpleItemAnimator

SimpleItemAnimator ()

Public methods

animateAdd

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.

animateAppearance

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.

animateChange

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,可以立即(如果不会出现动画)或动画后实际完成。 如果oldHolderoldHolder是相同的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.

animateChange

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)被调用时, oldHoldernewHolder会有所不同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返回falsecanReuseUpdatedViewHolder和布局管理勾画出保存更新的信息的新视图消失。 内置的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.

animateDisappearance

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的更改版本与否。 当且仅当falsecanReuseUpdatedViewHolder返回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.

animateMove

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.

animatePersistence

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.

animateRemove

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.

canReuseUpdatedViewHolder

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.

也可以看看:

dispatchAddFinished

void dispatchAddFinished (RecyclerView.ViewHolder item)

添加动画完成时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item which has been added

dispatchAddStarting

void dispatchAddStarting (RecyclerView.ViewHolder item)

在添加动画开始时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item being added

dispatchChangeFinished

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.

也可以看看:

dispatchChangeStarting

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.

dispatchMoveFinished

void dispatchMoveFinished (RecyclerView.ViewHolder item)

移动动画完成时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item which has been moved

也可以看看:

dispatchMoveStarting

void dispatchMoveStarting (RecyclerView.ViewHolder item)

在移动动画开始时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item being moved

dispatchRemoveFinished

void dispatchRemoveFinished (RecyclerView.ViewHolder item)

删除动画完成时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item which has been removed

也可以看看:

dispatchRemoveStarting

void dispatchRemoveStarting (RecyclerView.ViewHolder item)

在删除动画开始时由子类调用的方法。

Parameters
item RecyclerView.ViewHolder: The item being removed

getSupportsChangeAnimations

boolean getSupportsChangeAnimations ()

返回此ItemAnimator是否支持更改事件的动画。

Returns
boolean true if change animations are supported, false otherwise

onAddFinished

void onAddFinished (RecyclerView.ViewHolder item)

在给定ViewHolder上添加动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

onAddStarting

void onAddStarting (RecyclerView.ViewHolder item)

在给定的ViewHolder上开始添加动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

onChangeFinished

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.

onChangeStarting

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.

onMoveFinished

void onMoveFinished (RecyclerView.ViewHolder item)

在给定ViewHolder上移动动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

onMoveStarting

void onMoveStarting (RecyclerView.ViewHolder item)

在给定ViewHolder上开始移动动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

onRemoveFinished

void onRemoveFinished (RecyclerView.ViewHolder item)

在给定的ViewHolder上移除动画结束时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

onRemoveStarting

void onRemoveStarting (RecyclerView.ViewHolder item)

在给定的ViewHolder上启动删除动画时调用。 默认实现什么都不做。 子类可能希望覆盖此方法来处理任何与动画生命周期相关的ViewHolder特定操作。

Parameters
item RecyclerView.ViewHolder: The ViewHolder being animated.

setSupportsChangeAnimations

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.

也可以看看:

Hooray!