如何在RecyclerView中使用RecyclerView.ItemAnimator

时间:2019-11-21 09:32:40

标签: android android-recyclerview

我是Android开发的初学者。当我搜索RecyclerView动画时,我发现了有关RecyclerView.ItemAnimator的信息,但是找不到有关如何使用它的教程。我已阅读此How to use ItemAnimator in a RecyclerView?。但是,我什么也没得到。

我找到了文档。

默认情况下,RecyclerView使用DefaultItemAnimator。

如果我使用RecyclerView,可以从DefaultItemAnimator中获得什么类型的动画?

我用过LayoutAnimation,什么时候应该使用RecyclerView.ItemAnimator?

2 个答案:

答案 0 :(得分:0)

您希望为recyclerview的行设置动画。使用以下功能

 public void setFadeAnimation(View view) {
    AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
    anim.setDuration(1000);
    view.startAnimation(anim);
}

现在转到Adapter类,并在onBindViewHolder方法内部调用此函数

setFadeAnimation(myViewHolder.itemView);

它将为您的行设置动画

答案 1 :(得分:0)

您可以使用任何类型的动画为您的回收站视图项目设置动画

enter image description here

建立以下行为所需的步骤

  1. 首先在item_animation_fall_down.xml中创建文件res/anim/并添加以下内容:

    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:duration="@integer/anim_duration_medium">
    
        <translate
            android:fromYDelta="-20%"
            android:toYDelta="0"
            android:interpolator="@android:anim/decelerate_interpolator"
            />
    
        <alpha
            android:fromAlpha="0"
            android:toAlpha="1"
            android:interpolator="@android:anim/decelerate_interpolator"
            />
    
        <scale
            android:fromXScale="105%"
            android:fromYScale="105%"
            android:toXScale="100%"
            android:toYScale="100%"
            android:pivotX="50%"
            android:pivotY="50%"
            android:interpolator="@android:anim/decelerate_interpolator"
            />
    
    </set>
    
  2. 定义LayoutAnimation

完成项目动画后,就该定义布局动画了,该动画将把项目动画应用于布局中的每个子项。在layout_animation_fall_down.xml中创建一个名为res/anim/的新文件,并添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:animation="@anim/item_animation_fall_down"
    android:delay="15%"
    android:animationOrder="normal"
    />
  1. 应用LayoutAnimation

LayoutAnimation可以以编程方式和XML方式应用。

JAVA

int resId = R.anim.layout_animation_fall_down;
LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(ctx, resId);
recyclerview.setLayoutAnimation(animation);

XML

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"                                        
    android:layoutAnimation="@anim/layout_animation_fall_down"
    />

有关更多信息,请访问here