Recyclerview轻松设置滑动拖拽Item

我基本都是写一些小而美的实用东西(我也写不了太高大上的东西--).今天这个一定可以让头疼这个功能的猿们再也不用害怕。从前在Listview的时代像拖动等改变item的效果都需要做各种回调及手势处理等。大部分人都选择去使用第三方库。而RecyclerView出现后很多动画手势效果都变的简单了许多。谷歌把很多常用的都进行的封闭和接口回调(扩展)。ok今天我们就开始进入正题。先上效果图

Recyclerview轻松设置滑动拖拽Item_第1张图片
item_swipe_move.gif

Step1

首先我们需要继承ItemTouchHelper.Callback在里面处理一些事件处理及设置

  • 这里复写这两个方法可以对事件做“开关”
Recyclerview轻松设置滑动拖拽Item_第2张图片
Paste_Image.png
  • 这里的设置就看图吧。不用解释了
Recyclerview轻松设置滑动拖拽Item_第3张图片
Paste_Image.png
  • 这里主要对拖动时的一些事件做处理 比如有两个viewType时不做任何效果处理及adapter数据处理等
Recyclerview轻松设置滑动拖拽Item_第4张图片
Paste_Image.png
  • 这里可以在对滑动、拖动及停顿时做一些绘制 这里我对侧滑时改变alpha
Recyclerview轻松设置滑动拖拽Item_第5张图片
Paste_Image.png

Step2

我们需要两个回调来通知事件处理

Paste_Image.png

Step3

在adapter中实现onMoveAndSwipedListener

Recyclerview轻松设置滑动拖拽Item_第6张图片
Paste_Image.png

Step4

将我们自定义的Helper和RecyclerView进行关联即完成了简单的拖动及侧滑

Recyclerview轻松设置滑动拖拽Item_第7张图片
Paste_Image.png

在效果图中 我们可以看到。点击右边的图标是也是可以拖动的。这是可以通过ItemTouchHelper.startDrag(ViewHolder)
手动开启拖动。当然也有startSwipe(viewHolder)方法
源码:https://github.com/EasonHolmes/RecyclerView_Swipe_Move

你可能感兴趣的:(Recyclerview轻松设置滑动拖拽Item)