如何禁用RecyclerView动画?

Gre*_*r A 5 android kotlin android-recyclerview

我每秒都在使用和更新我的 RecyclerView。由于数据正在变化,我收到了这个烦人的 Android 默认动画。如何禁用默认的更改动画?其余要移除的可以保留。

Man*_*ddy 10

您可以通过将以下行添加到回收器视图来禁用动画

recyclerView.itemAnimator = null
Run Code Online (Sandbox Code Playgroud)

这将禁用所有默认动画

对于java

recyclerView.setItemAnimator(null);
Run Code Online (Sandbox Code Playgroud)

内部是这个setItemAnimator方法

ItemAnimator mItemAnimator = new DefaultItemAnimator();

public void setItemAnimator(@Nullable ItemAnimator animator) {
        if (mItemAnimator != null) {
            mItemAnimator.endAnimations();
            mItemAnimator.setListener(null);
        }
        mItemAnimator = animator;
        if (mItemAnimator != null) {
            mItemAnimator.setListener(mItemAnimatorListener);
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以我们将其设置mItemAnimator为 null ,默认情况下设置为DefaultItemAnimator()