0

我想做下一個動畫:應用級聯動畫RecyclerView項目在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++; 
    } 

} 

回答

1

這樣做的正確的方法是使用自定義ItemAnimator。您應該嘗試擴展SimpleItemAnimatorDefaultItemAnimator以應用您的動畫。

ItemAnimator對來自適配器的數據事件作出響應,因此您應在適配器中包含調用notifyItemRemoved()notifyItemRangeRemoved()的邏輯,以便觸發正確的動畫。

0

我認爲你應該迭代你的數組,每次刪除該項目然後調用notifyItemRemoved,你可能想延遲每個操作,以便你的動畫看起來很流暢。

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