我使用itemTouchHelper.callback在recyclerView中实现了项目的重新排序,因为它似乎是现在最流行的解决方案。然而,这只允许在长按任何项目后重新排序,我需要能够随时随地自由移动项目(我将项目itemTouchHelper附加到'编辑模式'并立即分离。最简单的方法是什么?
首先在itemTouchHelper中禁用LongPressDragEnabled,然后只需触摸自定义句柄视图,即Imageview或类似的东西,只需调用startDrag(RecyclerView.ViewHolder)
viewHolder.dragButton.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (MotionEvent.getActionMasked(event) == MotionEvent.ACTION_DOWN) {
mItemTouchHelper.startDrag(viewHolder);
}
return false;
}
});