【发布时间】:2017-08-11 20:10:11
【问题描述】:
如果用户滑动,我想删除一个项目,如果用户单击 deleteAll 按钮,我想删除 RecyclerView 中的所有项目,我尝试访问每个视图并添加一个动画,但我现在不知道如何,我在创建中添加动画因为适配器给了我onBindViewHolder 中的每个视图持有者,这是我的适配器
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();
}
});
【问题讨论】:
-
你到底要做什么动画?是不是类似于gmail的滑动动画,你想用手机删除邮件?
-
是的,当用户单击删除所有项目时,我想要从回收站视图中滑出所有项目
标签: java android animation android-recyclerview android-animation