0

にカスケードアニメーションRecyclerView項目を適用します。は、私は次のアニメーションをやりたいのAndroid

たとえば、10桁目のアイテムをクリックすると、0〜9のアイテムが消えて、カスケードスワイプ左のアニメーションが適用されます。

どうすればいいですか?

は、この時点で私はこのように適用することを試みた:

ViewHolder方法を:これを行うための正しい方法は、カスタムItemAnimatorを使用している

@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

。アニメーションを適用するには、SimpleItemAnimatorまたはDefaultItemAnimatorのいずれかを拡張するようにしてください。

ItemAnimatorは、アダプタからのデータイベントに応答します。したがって、適切なアニメーションがトリガーされるように、notifyItemRemoved()またはnotifyItemRangeRemoved()を呼び出すロジックをアダプタに含める必要があります。

0

あなたは配列であり、そのアイテムを削除してからnotifyItemRemovedを呼び出すたびにアニメーションがスムーズになるように各操作を遅らせたいと思うかもしれません。

mResults.remove(position); 
adapter.notifyItemRemoved(position); 
関連する問題