当视图离开屏幕时,Android动画停止在recyclerview中起作用

Евг*_*ков 5 animation android scroll android-recyclerview

我这样设置动画:

@Override
    public void onBindViewHolder(ViewHolder holder, int position) {     
            Animation anim = AnimationUtils.loadAnimation(context, R.anim.rotate);
            holder.windPropellers.setAnimation(anim);
            break;
}
Run Code Online (Sandbox Code Playgroud)

当视图滚动离开屏幕时,动画将停止。当您向后滚动时,它根本就没有动画。

jon*_*nrz 6

您需要在视图中设置瞬态,以防止其被回收。

您的代码如下所示:

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {     
        Animation anim = AnimationUtils.loadAnimation(context, R.anim.rotate);
        holder.windPropellers.setHasTransientState(true);
        anim.setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                holder.windPropellers.setHasTransientState(false);
            }
        });
        holder.windPropellers.setAnimation(anim);
        break;
Run Code Online (Sandbox Code Playgroud)

}

  • 很棒的兄弟,非常感谢您的回答 (2认同)