RecyclerView 是 Android 开发中常用的列表控件,但有时需要对列表项进行拖动排序的功能。这篇文章将介绍如何通过 ItemTouchHelper 类实现 RecyclerView 的拖动排序功能。
1. 关联 ItemTouchHelper 和 RecyclerView
首先,需要创建一个 ItemTouchHelper 对象,并将其关联到 RecyclerView 上。这样,ItemTouchHelper 就能够监测到用户的触摸操作,并相应地处理。
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new MyItemTouchHelperCallBack());
itemTouchHelper.attachToRecyclerView(mMainRecyclerView);
2. 编写 ItemTouchHelper 的回调类
接下来,需要编写一个自定义的 ItemTouchHelper.Callback 类,用于处理拖动和滑动操作。
注意,这里的adapter是要与需要拖动的recyclerview关联的适配器
public class MyItemTouchHelperCallBack extends ItemTouchHelper.Callback {
@Override
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
// 定义拖动和滑动的方向
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHe