我是Android开发的初学者。当我搜索RecyclerView动画时,我发现了有关RecyclerView.ItemAnimator的信息,但是找不到有关如何使用它的教程。我已阅读此How to use ItemAnimator in a RecyclerView?。但是,我什么也没得到。
我找到了文档。
默认情况下,RecyclerView使用DefaultItemAnimator。
如果我使用RecyclerView,可以从DefaultItemAnimator中获得什么类型的动画?
我用过LayoutAnimation,什么时候应该使用RecyclerView.ItemAnimator?
答案 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)
您可以使用任何类型的动画为您的回收站视图项目设置动画
建立以下行为所需的步骤
首先在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>
定义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"
/>
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