Адаптер 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 (), я теряю причудливую анимацию. Любое предложение ?