В моем проекте мне нужно отключить анимацию "change" RecyclerView
, а notifyItemChanged
.
Я исследовал в источнике RecyclerView
и переопределил android.support.v7.widget.DefaultItemAnimator
, как показано ниже:
private static class ItemAnimator extends DefaultItemAnimator
{
@Override
public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder, int fromX, int fromY, int toX, int toY) {
if(oldHolder != null)
{
oldHolder.itemView.setVisibility(View.INVISIBLE);
dispatchChangeFinished(oldHolder, true);
}
if(newHolder != null)
{
dispatchChangeFinished(newHolder, false);
}
return false;
}
}
Но я не уверен, согласен ли я со спецификацией документа Google:
RecyclerView.ItemAnimator.animateChange
Согласно моему пониманию исходного кода, если я не переопределяю метод правильно, oldHolder не будет перерабатываться.
Пожалуйста, помогите мне выяснить, как правильно переопределить animateChange
.