我想要删除一个项目,如果用户刷卡,并删除RecyclerView中的所有项目,如果用户单击deleteAll按钮,我尝试访问每个视图添加动画,但我不现在怎么样,我添加了动画创作,因为适配器给我的每一个观点持有人onBindViewHolder
,这是我的适配器如何删除RecyclerView适配器中的所有项目与动画
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
Context context;
List<String> stringList;
public MyAdapter(Context context, List<String> stringList) {
this.context = context;
this.stringList = stringList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context)
.inflate(R.layout.item,parent,false);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
holder.itemView.startAnimation(animation);
holder.bind(stringList.get(position));
}
@Override
public int getItemCount() {
return stringList.size();
}
public void dismiss(int adapterPosition) {
stringList.remove(adapterPosition);
this.notifyItemRemoved(adapterPosition);
}
public void removeItem(int position) {
this.stringList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, getItemCount() - position);
}
class MyViewHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
TextView textView;
String data;
public MyViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.text);
itemView.setOnClickListener(this);
}
public void bind(String data) {
this.data = data;
textView.setText(data);
}
@Override
public void onClick(View view) {
stringList.remove(data);
notifyDataSetChanged();
}
}}
我RecyclerView和适配器的主要活动,以及如何我处理全部删除,但问题是如何我可以添加动画
adapter = new MyAdapter(this,myList);
ItemTouchHelper.Callback callback = new SwipeHelper(adapter);
ItemTouchHelper helper = new ItemTouchHelper(callback);
recyclerView.setAdapter(adapter);
helper.attachToRecyclerView(recyclerView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i = myList.size()-1 ; i >= 0 ; i--){
adapter.removeItem(i);
}
//recyclerView.removeItemDecoration();
}
});
哪个动画你actaully怎么办?当你想用你的手机删除邮件时,它是否与gmail有什么相似的滑动动画? – berrytchaks
是的,我想要当用户点击删除所有项目滑出回收站视图 – 3zcs
在'RecyclerView'中做动画的正确方法是通过'ItemAnimator'。不要将动画放在适配器中,因为它不是适配器对动画布局更改的责任。请查看以下视频:[link](https://www.youtube.com/watch?v=imsr8NrIAMs&list=PLWz5rJ2EKKc_Tt7q77qwyKRgytF1RzRx8&index=6)。有关更多详细信息,请查看此存储库:[回购](https://github.com/vicky7230/Paprika) – Vicky