Lottie Animation 在 recyclerview 中每 5 个元素发生一次

Lottie Animation happens every 5 elements in recyclerview

我有一个包含很多元素(20 多个)的 recyclerview,每个元素中都有一个 lottie 动画。 Lottie 动画不会 运行 直到用户点击它,但问题是当点击动画时,动画每 5 个元素发生一次。

例如,如果您点击第一个元素,那么第 5、10、15、20 个元素都会有动画效果。 如果你点击第二个,那么 6、11、16、21 都会动画。

这是我的 View Holder class:

class OutfitViewHolder extends RecyclerView.ViewHolder{

        private final LottieAnimationView animationView;

        private OutfitViewHolder(View view){

            super(view);
         
            animationView = view.findViewById(R.id.wearAgainAnimation);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    wearAgainAnimation();
                }
            });

        }

        private void wearAgainAnimation() {

            final ValueAnimator animator = ValueAnimator.ofFloat(0f,.5f).setDuration(800);
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    animationView.setProgress((Float) animator.getAnimatedValue()) ;
                }
            });

            if (animationView.getProgress() == 0f) {
                animator.start();
            } else {
                animationView.setProgress(0f);
            }

        }
    }

我已经检查以确保只有点击元素的位置被传递给适配器,所以我不确定为什么其他元素也有动画

我最终更改了 recyclerview 的缓存大小以匹配我的列表大小。我在 class

中初始化我的 recyclerview 时这样做了
recyclerView.setItemViewCacheSize(list.size());