-1
i 4 개 요소가있는 recyclerview 목록이 있습니다. 스 와이프는 매번 실행 취소 버튼을 누를 때마다 스 와이프 된 뷰가 목록 상단으로 어떻게 돌아 가게되는지 순차적으로 완료됩니까?스 와이프 된보기를 recyclerview 목록에 순차적으로 첨부하는 방법은 무엇입니까?
MyAdapter
내가onItemDismiss
방법에 슬쩍 항목을 저장하고
restoreLastItem
를 호출하지만 이것은 단지 내가 목록에 그 전에 의견을 다시 얻을 수있는 방법 마지막 슬쩍보기 위해 작동하여 시도
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);
}
.