之前在做一个App自定义顺序的功能,用户需要拖动App到自己想要的位置,刚开始一切都写好之后,拖动么有问题当排序之后发现位置完全错乱了,根本不是我们想要的顺序,所以今天就把这个坑分享出来,也给自己做个记录。
定义接口记录拖动前后的位置:
public interface ItemTouchHelperAdapter {
//数据交换前后位置
void onItemMove(int fromPosition, int toPosition);
}
实现接口:
public class SimpleItemTouchHelperCallback extends ItemTouchHelper.Callback {
private ItemTouchHelperAdapter mAdapter;
private boolean sort = false;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter) {
mAdapter = adapter;
}
/*
* 用于返回可以滑动的方向
* */
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
int dragFlags = ItemTouchHelper.UP