【问题标题】:ItemTouchHelper notifyItemMoved from to position not workingItemTouchHelper notifyItemMoved from to position 不工作
【发布时间】:2016-06-20 22:21:30
【问题描述】:

当前,我在 recyclerview 中执行拖放项目时遇到问题。 我正在参考https://github.com/iPaulPro/Android-ItemTouchHelper-Demo 但是在适配器中执行函数时:

mListBookMark 是 Object 的 ArrayList

@Override
public boolean onItemMove(int fromPosition, int toPosition) {
    Collections.swap(mListBookMark, fromPosition, toPosition);
    notifyItemMoved(fromPosition, toPosition);
    return true;
}

当我将项目从位置 a 拖动到位置 b 但完成拖动回收器视图时未更改数据。 我该怎么做? 请给我一些建议!谢谢。

【问题讨论】:

  • 我也有这个问题。现在我解决了在返回 true 之前放置 notifyDataSetChanged() 的问题。

标签: drag-and-drop drag android-recyclerview


【解决方案1】:

尝试将notifyItemChanged() 添加到您的代码中,如下所示:

@Override
public boolean onItemMove(int fromPosition, int toPosition) {
    Collections.swap(mListBookMark, fromPosition, toPosition);
    notifyItemMoved(fromPosition, toPosition);
    notifyItemChanged(fromPosition);
    notifyItemChanged(toPosition);
    return true;
}

这应该会根据新位置更新视图。

【讨论】:

  • 这实际上把动画弄得一团糟,不知何故导致 onItemMove 被调用了两次!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
相关资源
最近更新 更多