-1
i 4要素のrecyclerviewリストがあります。スワイプされたビューは、毎回毎回アンドゥボタンを押したときにスワップされたビューがどのようにリストの先頭に戻ってくるかを順番に処理しますか?スワイプドビューを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
を呼び出してみましたが、これはちょうど私がリスト上でそのバックの前景色を取得することができますどのように最後のスワイプビューのために動作します。