在 listview 的时候我们会碰到很多的上下拖动排序和左右滑动清除的开源库,在 RecycleView 上我们也能看到一些类似的库,然而令人欣喜的是官方给 RecycleView 提供了这么一个工具 -- ItemTouchHelper 。这个工具可以很方便的帮助我们在 RecycleView 上完成上下拖动排序和左右滑动清除的功能。
我们先说下使用方法。一个简单的用法如下:
int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(dragFlags,swipeFlags) {
/**
* 上下拖动排序
* @param recyclerView
* @param viewHolder
* @param target
* @return true 表示做了拖动处理
*/
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
// 交换 adapter 数据
// 通知 adapter 更新视图
return true;
}
/**
* 左右滑动清除
* @param viewHolder
* @param direction
*/
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
// 删除数据
// 通知 adapter 更新视图
}
});
itemTouchHelper.attachToRecyclerView(recyclerView);
先写到这里,后面有时间补充。