代码之家  ›  专栏  ›  技术社区  ›  Nazim ch

循环视图中的洛蒂动画仅在单个项目上播放动画

  •  0
  • Nazim ch  · 技术社区  · 6 年前

    我正在Android RecyclerView中制作乐透动画,但动画只在一个项目上播放,而且总是最后一个项目。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回收器视图中处理乐蒂动画?

    1 回复  |  直到 2 年前
        1
  •  1
  •   CptEric    6 年前

    如果最后一个元素是唯一起作用的元素,而其他交互行为正常,那么最可能的原因是代码重新分配/回收了与RV一起的乐蒂动画,直到它到达最后一个RV元素,并且是最后一个重新分配/重用的元素,这就是最有效的。