-1
我有一個有4個元素的回收站列表,按順序進行滑動操作,每次一個一個地按下撤消按鈕,滑動視圖如何返回到列表頂部?如何依次將滑動視圖重新附加到recyclerview列表中?
MyAdapter
public class RecyclerListAdapter extends RecyclerView.Adapter<RecyclerListAdapter.ItemViewHolder>
implements ItemTouchHelperAdapter {
private Card lastRemovedItem;
private int lastIndex = -1;
private final List<Card> mItems = new ArrayList<>();
Card car1 = new Card(R.drawable.card1, "first");
Card car2 = new Card(R.drawable.card2, "Second");
Card car3 = new Card(R.drawable.card3, "Third");
Card car4 = new Card(R.drawable.card4, "fourth");
public RecyclerListAdapter() {
mItems.addAll(Arrays.asList(car1, car2, car3, car4));
}
@Override
public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(card, parent, false);
ItemViewHolder itemViewHolder = new ItemViewHolder(view);
return itemViewHolder;
}
@Override
public void onBindViewHolder(ItemViewHolder holder, int position) {
Card card = mItems.get(position);
holder.textView.setText(card.getText());
holder.imageView.setImageResource(card.getImage());
}
@Override
public void onItemDismiss(int position) {
lastRemovedItem = mItems.get(position);
lastIndex = position;
mItems.remove(position);
notifyItemRemoved(position);
}
public void restoreLastItem() {
if (lastIndex == -1)
return;
mItems.add(lastIndex, lastRemovedItem);
notifyItemInserted(lastIndex);
lastRemovedItem = null;
lastIndex = -1;
}
@Override
public void onItemMove(int fromPosition, int toPosition) {
Card prev = mItems.remove(fromPosition);
mItems.add(toPosition > fromPosition ? toPosition - 1 : toPosition, prev);
notifyItemMoved(fromPosition, toPosition);
}
@Override
public int getItemCount() {
return mItems.size();
}
public static class ItemViewHolder extends RecyclerView.ViewHolder implements
ItemTouchHelperViewHolder {
public final TextView textView;
public final ImageView imageView;
public ItemViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.heading_text);
imageView = (ImageView) itemView.findViewById(R.id.image);
}
我嘗試使用上onItemDismiss
方法節省刷卡的項目,並呼籲restoreLastItem
但這只是工作的最後刷卡視圖我怎樣才能在這之前的看法回到名單。