在 Android 中应用级联动画 RecyclerView 项目

Apply cascade animation RecyclerView Items in Android

我想做下一个动画:

当我单击我的 RecyclerView 中的某个项目时,之前的项目会以级联动画消失。

例如:我点击我放置在位置 10 的项目,然后从 0 到 9 的项目必须应用级联向左滑动动画消失。

如何才能做到?

此时我试过这样申请:

ViewHolder 方法:

  @Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {

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

    lstViewsHolder.add(holder.itemView);

    setAnimation(holder.itemView, position);



}

private void swipeAnimation(int position){
     int init = 0;

    while(init < position){

        lstViewsHolder.get(init).startAnimation(AnimationUtils.loadAnimation(context, R.anim.swipe_left));
        init++;
    }

}

正确的做法是使用自定义 ItemAnimator。您应该尝试扩展 SimpleItemAnimatorDefaultItemAnimator 以应用您的动画。

ItemAnimators 响应来自适配器的数据事件,因此您应该在适配器中包含调用 notifyItemRemoved()notifyItemRangeRemoved() 的逻辑,以便触发适当的动画。

我认为您应该遍历您的数组,每次删除该项目然后调用 notifyItemRemoved,您可能希望延迟每个操作以便动画看起来流畅。

mResults.remove(position);
adapter.notifyItemRemoved(position);