Mam Usuń w machnięcia, który rysuje tło (podobnie jak w aplikacji Inbox), realizowany przez ItemTouchHelper - poprzez nadpisanie metody onChilDraw i rysując prostokąt na dostarczonych płótnie:RecyclerView ItemTouchHelper swipe usunąć animacja
ItemTouchHelper mIth = new ItemTouchHelper(
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
remove(viewHolder.getAdapterPosition());
}
public boolean onMove(RecyclerView recyclerview, RecyclerView.ViewHolder v, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
View itemView = viewHolder.itemView;
Drawable d = ContextCompat.getDrawable(context, R.drawable.bg_swipe_item_right);
d.setBounds(itemView.getLeft(), itemView.getTop(), (int) dX, itemView.getBottom());
d.draw(c);
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
});
metoda remove nazywa powyżej jest w adapterze:
public void remove(int position) {
items.remove(position);
notifyItemRemoved(position);
}
w tle rysuje się ładnie, ale gdy notifyItemRemoved nazywa (według pana Debugger), przy czym RecyclerView najpierw usuwa moją ładną zielonym tle, a następnie popycha dwa a sąsiadujące przedmioty razem.
chciałbym go zachować tam tło podczas gdy to robi, że (podobnie jak w aplikacji Inbox). Czy istnieje jakiś sposób, aby to zrobić?