ItemTouchHelper
是一个RecyclerView
的辅助工具类,可实现侧滑删除和拖拽移动,我们通常需要继承其ItemTouchHelper.Callback
,同时根据需要重写onMove和onSwiped
方法。
public class CustomItemTouchHelperCallback extends ItemTouchHelper.Callback {
private ItemTouchListener listener;
public CustomItemTouchHelperCallback(ItemTouchListener listener) {
this.listener = listener;
}
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
//该方法会首先被回调,用来返回需要在那个方向上实现拖拽
//需要实现上下拖拽
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
//需要实现左右侧滑
int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
int flags = makeMovementFlags(dragFlags, swipeFlags);
return flags;
}
@Override
public boolean isLongPressDragEnabled() {
//开启长按后开始拖拽的效果
return true;
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder srcHolder,<