我正在使用DynamicListView中的拖放功能来重新排列列表中项目的顺序。

它工作正常,但不能与列表中的下一个交换项目。我只能将一个项目拖到至少两个位置,例如从位置1拖到3,但不能从1拖到2。

分段:

    mDynamicListView.enableDragAndDrop();
    mDynamicListView.setDraggableManager(new TouchViewDraggableManager(R.id.icon));


适配器

@Override
public void swapItems(final int positionOne, final int positionTwo) {
    HMObject firstItem = objects.set(positionOne, getItem(positionTwo));
    notifyDataSetChanged();
    objects.set(positionTwo, firstItem);
}


我在这里做错什么了吗?

最佳答案

我建议使用您的示例代码:

public void swapItems(final int positionOne, final int positionTwo) {
   HMObject firstItem = getItem(positionOne);

   objects.set(positionOne, getItem(positionTwo));
   objects.set(positionTwo, firstItem);

   notifyDataSetChanged();


注意:主要区别是firstItem的分配。

08-04 12:17