RecyclerView 滑动删除与拖动的实现
前言
记得很久以前做APP应用的时候,项目组老大说网易的栏目管理那块,可拖动排序蛮好看的,我们的应用也要那么做,后来我就在网上百度一番,找到用GridView的实现,最近游览网页,在网上看见有用RecyclerView实现的,自己也按照文章上的写了,看了一下,觉得写的蛮好的,不过有些地方的注释写的不全,所以我也写了一篇记录下来,参考文地址在这里,感谢这位作者,使我又学会了很多。
实现原理
主要是借助 ItemTouchHelper.Callback 类来实现,我们要关注的方法为
* getMovementFlags( )
* onMove()
* onSwiped()
* onSelectedChanged()
* clearView()
* isLongPressDragEnabled()
只需要重写这些方法,就能得到我们想要的结果。
拖动实现
首先自定义一个MyCallback类继承 ItemTouchHelper.Callback ,定义两个int变量dragFlags 与 swipeFlags 并实现下方法。
getMovementFlags()
这个方法主要是为了获取我们当前的事件是拖动还是滑动
dragFlags = 0;
swipeFlags = 0;
if (recyclerView.getLayoutManager() instanceof GridLayoutManager || recyclerView.getLayoutManager() instanceof StaggeredGridLayoutManager) {
dragFlags = ItemTouchHelper