RecyclerView的拖动排序需要借助一下ItemTouchHelper这个类,ItemTouchHelper类是谷歌提供的一个支持RecyclerView滑动和拖动的一个使用类、下面使用该类实现RecyclerView的滑动删除和拖动排序功能。
阅读文本之前可以先阅读如下文章:
-
<李> RecyclerView的简单使用李>
<李> RecyclerView的项的单击事件李>
<李> RecyclerView的刷新分页李>
首先大概介绍一下ItemTouchHelper的一个内部抽象类调类。
ItemTouchHelper.Callback
该类是ItemTouchHelper类中的一个静态抽象类,作用主要是将ItemTouchHelper于自己的应用联系在一起,让开发者通过ViewHolder控制每一个视图的具体行为,接收用户的事件回调。该类里面有三个抽象方法:getMovementFlags, onMove onswipe。也是开发中经常要是用的。
getMovementFlags
该方法返回一个旗帜表示项的三种状态状态:闲置(空闲),刷(滑动),拖拖(动),根据RecyclerView不同的布局管理器,设置不同的滑动,拖动方向,一般使用makeMovementFlags (int, int dragFlags swipeFlags)方法返回,dragFlags表示拖动的方向,swipeFlags表示滑动的方向。
<代码类="语言java ">公共抽象int getMovementFlags (RecyclerView RecyclerView, ViewHolder ViewHolder); 代码>
onMove
当ItemTouchHelper拖动一个项目时该方法将会被回调,项目将从旧的位置移动到新的位置,如果不拖动这个方法将从来不会调用,返回真正的表示项已经被移动到新的位置。
<代码类="语言java ">公共文摘布尔>公共空>公共空间>公共去年clearView无效(RecyclerView RecyclerView, ViewHolder ViewHolder) { sUICallback.clearView (viewHolder.itemView); }代码>
RecyclerView实现拖动排序
RecyclerView的拖动排序需要借助一个android.support.v7.widget.helper。ItemTouchHelper这个类来实现,拖动排序重点是在接口里面的> @Override 公共空间>/* * *由jzman>/* * *由jzman alt=" RecyclerView实现拖动排序和滑动删除功能”>