RecyclerView滑动删除之ItemTouchHelper

      ItemTouchHelper是一个强大的工具,它处理好了关于在RecyclerView上添加拖动排序与滑动删除的所有事情。它是RecyclerView.ItemDecoration的子类,也就是说它可以轻易的添加到几乎所有的LayoutManager到Adapter中。它还可以和现有的item动画一起工作,提供受类型限制的拖放动画等等

使用 ItemTouchHelper 和 ItemTouchHelper.Callback

    要使用ItemTouchHelper,你需要创建一个ItemTouchHelper.Callback。这个接口可以让你监听“move”与 “swipe”事件。这里还是控制view被选中的状态以及重写默认动画的地方。如果你只是想要一个基本的实现,有一个帮助类可以使用:SimpleCallback,但是为了了解其工作机制,我们还是自己实现。

        实现该接口的子类我们将重写下面三个回调方法,另外,还重写需要两个辅助方法:


辅助方法:


1.getMovementFlags()

    ItemTouchHelper可以让你轻易得到一个事件的方向。你需要重写getMovementFlags()方法来指定可以支持的拖放和滑动的方向。使用helperItemTouchHelper.makeMovementFlags(int, int)来构造返回的flag。这里我们启用了上下左右两种方向。注:上下为拖动(drag),左右为滑动(swipe)


2.onMove()

3.onSwip()

这两个方法,顾名思义就是滑动和拖动时的回调,我们一般在这两个方法中写入我们自己的接口(如下图ItemTouchHelperAdapter)回调方法,将回调传递出去,更新数据!


在Adapter中处理我们自己写的接口回调,跟新adapter数据


最后在Activity中将itemtouchHelper  attach到Recyclerview中


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容