二、ItemTouchHelper.Callback 自定义实现
其中的 ItemTouchHelper.Callback 一般都需要开发者自定义子类实现 ;
1、设置移动标志 ( 拖动/滑动 )
重写 ItemTouchHelper.Callback 的 getMovementFlags 方法 ;
该方法用于设置上下左右动作 , 只有在此处打开了指定方向的设置 , 才可以应用具体方向的拖动 , 动作有两种 , 一种是滑动 , 如左右侧滑 ; 一种是拖动 , 长按后激活拖动操作 , 可用于拖动交换位置操作 ;
拖动 / 滑动 标志位可以使用 ItemTouchHelper.UP | ItemTouchHelper.DOWN , 或运算得到想要的标志位 ;
将或运算结果传入 makeMovementFlags 方法 , 第一个参数是设置拖动标志位 , 第二个参数是设置滑动标志位 ;
设置 左右滑动 , 上下拖动代码如下 :
/** * 设置上下左右动作 * 只有在此处打开了指定方向的设置 , 才可以应用具体方向的拖动 * @param recyclerView * @param viewHolder * @return */ @Override public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { /* 设置拖动方向, 此处设置上下拖动事件 */ int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; /* 设置滑动方向, 此处设置左右侧滑事件 */ int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; // 应用 拖动 和 滑动 设置 return makeMovementFlags(dragFlags, swipeFlags); }
效果展示 :