Адаптер RecyclerView notifyDataSetChanged останавливает необычную анимацию

Я строю компонент, основанный на RecyclerView, позволяющий пользователю изменять порядок элементов путем перетаскивания. Когда я нахожусь на стороне DragListener, мне нужно положение, которое он имеет в адаптере, чтобы выполнить правильное перемещение, но у меня есть только доступ к представлению. Итак, вот что я делаю в привязке вида адаптера:

@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
    Track track = mArray.get(position);
    viewHolder.itemView.setTag(R.string.TAG_ITEM_POSITION, position);
}

Вам это кажется правильным? Потому что, если я перемещу элемент, как это:

public void move(int from, int to){
    Track track = mArray.remove(from);
    mArray.add(to, track);
    notifyItemMoved(from, to);
}

тогда тег позиции больше не является правильным, и если я уведомляю DataSetChanged (), я теряю причудливую анимацию. Любое предложение ?

Ответы на вопрос(5)

Ваш ответ на вопрос