0

我在 Android RecyclerView 中制作 Lottie 动画,但动画仅在单个项目上播放,并且始终是最后一个项目。onclick 在正确的项目上,但动画视图在常量项目上。

我的适配器部分

listingRecyclerItemBinding.quickviewfilled.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            quickViewNew("OFF", mValues.get(position).getPropertyIndex(),
                    mValues.get(position).getDeveloperId(), mValues.get(position).getPublic());
            mValues.get(position).setQuickAccess("0");
            notifyDataSetChanged();
        }
    });
    listingRecyclerItemBinding.quickviews.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            listingRecyclerItemBinding.quickviews.setVisibility(View.GONE);
            listingRecyclerItemBinding.addToquick.setVisibility(View.VISIBLE);
            listingRecyclerItemBinding.addToquick.addAnimatorListener(new Animator.AnimatorListener() {
                @Override
                public void onAnimationStart(Animator animator) {

                }

                @Override
                public void onAnimationEnd(Animator animator) {
                    listingRecyclerItemBinding.addToquick.setVisibility(View.GONE);
                    quickViewNew("ON", mValues.get(position).getPropertyIndex(),
                            mValues.get(position).getDeveloperId(),
                            mValues.get(position).getPublic());
                    mValues.get(position).setQuickAccess("1");
                }

                @Override
                public void onAnimationCancel(Animator animator) {

                }

                @Override
                public void onAnimationRepeat(Animator animator) {

                }
            });
            listingRecyclerItemBinding.addToquick.playAnimation();
        }
    });

  

如何处理 android recycler 视图中的 Lottie 动画?

4

1 回答 1

1

如果最后一个元素是唯一工作的元素,并且其他交互行为正确,则最可能的原因是您的代码在 RV 旁边重新分配/回收您的 lottie 动画,直到它到达最后一个 RV 元素,并且是最后一个重新评估/重用的元素,这是一个作品。

于 2018-03-12T11:27:36.000 回答