notifyItemMoved

调用 notifyItemMoved之后,要调用notifyItemRangeChanged(),如下。这样数据才不会乱。前提你自己把数据先重新排好序。数据库排序的话,重写equals,hashCode,重新拉一下也行。

int newPosition =mList.indexOf(r);

Logger.d("newPosition " + newPosition +" i: " +i);

//相同的位置就不要刷新了。

if (newPosition ==i)return;

notifyItemMoved(i, newPosition);

notifyItemRangeChanged(Math.min(i, newPosition), Math.abs(i - newPosition) +1);

你可能感兴趣的:(notifyItemMoved)