ho un rimuovere il colpo, che disegna uno sfondo (molto simile l'applicazione Posta in arrivo), implementato da un ItemTouchHelper - sovrascrivendo il metodo onChilDraw e disegnare un rettangolo sulla tela forniti:RecyclerView ItemTouchHelper colpo rimuovere animazione
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);
}
});
il metodo remove chiamato sopra è nel adattatore:
public void remove(int position) {
items.remove(position);
notifyItemRemoved(position);
}
lo sfondo tira fuori bene, ma quando viene chiamato notifyItemRemoved (secondo il signor Debugger), il RecyclerView elimina prima la mia bella sfondo verde, e poi spinge i due a oggetti vicini insieme.
vorrei così almeno il fondo lì mentre lo fa (proprio come l'applicazione Posta in arrivo). C'è un modo per farlo?