这两天在Github上下载了一个RecyclerView实现拖放和滑动的Demo,跟着代码打了一遍,梳理一下实现这个Demo的大概思路。
用RecyclerView实现拖放和滑动只需要一个类就可以了!这个类就是ItemTouchHelper,我们看源码就可以知道它是RecyclerView.ItemDecoration的子类。
- 设置
首先在Android Studio中的build.gradle添加RecyclerView的依赖:
compile 'com.android.support:recyclerview-v7:23.1.1'
- 使用ItemTouchHelper.Callback
要使用ItemTouchHelper,就要先创建一个ItemTouchHelper.Callback,这是监听“move”和“swipe”事件的接口。在Callback中,你可以控制被选中的视图的状态。
我们需要重写以下三个ItemTouchHelper.Callback的方法:
getMovementFlags(RecyclerView recyclerView, ViewHolder viewHolder);
onMove(RecyclerView recyclerView, ViewHolder viewHolder, ViewHolder target);
onSwiped(ViewHolder viewHolder, int direction);
我们还需要两个帮助方法:
isLongPressDragEnabled();
isItemViewSwipeEnabled();
解释一下这几个方法:
@Override
public boolean isLongPressDragEnabled() {
return true;
}
如果你想要实现当长按时能够有拉拽的效果,在这个方法中返回true。
@Override
public boolean isItemViewSwipeEnabled