ItemTouchHelper是在操作RecyclerView时,堆Item进行长按移动,左右滑动删除效果的一个辅助类。
自定义接口写出item交换和左滑删除方法
public interface ItemTouchHelperAdapter {
//交换
void onItemMove(int fromPosition,int endPosition);
//删除
void onItemDelete(int position);
}
先自定义一个类实现ItemTouchHelper.Callback接口
public class SimpleItemTouchCallBack extends ItemTouchHelper.Callback{
private ItemTouchHelperAdapter mAdapter;
SimpleItemTouchCallBack(ItemTouchHelperAdapter adapter) {
mAdapter = adapter;
}
@Override
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
//上下滑动交换位置参数,当为网格布局的时候也可以上下左右全部加上
int dragFlag = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
//左滑删除参数,当需要上下左右交换位置时这个参数传0就行
int moveFlag = ItemTouchHelper.LEFT;
return makeMoveme