• 打造最强RecyclerView,Item侧滑菜单,长按拖拽Item,滑动删除Item

    2016/08/05 严振杰

打造最强RecyclerView Item侧滑菜单 长按拖拽Item 滑动删除Item

版权声明:本文自严振杰的博客: http://blog.csdn.net/yanzhenjie1003

前几天写了一片关于RecyclerView滑动删除Item,RecyclerView长按拖拽Item的博客,本来很简单一个使用,阅读量还挺高的,原博客传送门

今天介绍一个RecyclerView Item侧滑菜单,RecyclerView滑动删除Item,RecyclerView长按拖拽Item的开源项目,效果看下图,大家也可以下载演示apk具体操作体验下SwipeRecyclerView的强大。

需要说明的是,本库没有对RecyclerView做大的修改,只是ItemView的封装。看起来是对RecyclerView的修改,其实仅仅是为RecyclerView添加了使用的方法API而已。

今天的博客将完美解决这些问题:
1. 指定某个Item不能滑动删除或者不能长按拖拽。
2. RecyclerView Item添加侧滑菜单。
3. 自动打开指定的某个Item菜单。
4. 解决RecyclerView和Item的滑动冲突。
5. 解决RecyclerView的Item滑动和下拉刷新框架的冲突。

SwipeRecyclerView的源码托管在Github:https://github.com/yanzhenjie/SwipeRecyclerView,欢迎Star。

如果不能打开Github,直接从CSDN上下载Demo


演示Demo apk下载

效果图

如果网页加载速度慢,可以下载demo的apk看效果。

侧滑菜单

RecyclerView Item侧滑菜单。左右两侧都可以添加侧滑菜单,菜单Item包括图标、文字、点击背景颜色等。也可以根据Item的ViewType来决定某个Item的Menu的样子、类型等:

双向侧滑 根据ViewType显示菜单

拖拽、侧滑菜单

RecyclerView Item长按后拖拽Item移动位置。同时支持

长按拖拽、Item侧滑显示菜单。包括各种布局管理器,比如

都完美支持:

Item拖拽和菜单结合 Item拖拽和菜单结合

拖拽、侧滑删除

可以指定某个Item不能被拖拽,指定某个Item不能被滑动删除:

拖拽与滑动删除 拖拽与滑动删除

引用方法

  • Eclipse 请自行下载源码
  • AndroidStudio使用Gradle构建添加依赖(推荐)

[/crayon]
本库引用的RecyclerView版本如下:

[/crayon]

使用介绍

这里列出关键实现,具体请参考demo,或者加我博客左侧的交流群或者关注我的公众微信一起来讨论。

实现原理

  1. 侧滑菜单使用自定义Layout实现,继承自FragmeLayout。
  2. 长按拖拽Item、滑动Item删除由ItemTouchHelper实现。

启用SwipeReyclerView的长按Item拖拽功能和侧滑删除功能

[/crayon]

添加Item侧滑菜单

侧滑菜单支持自动打开某个Item的菜单,并可以指定是左边还是右边的:

  • 第一步,引用自定义View:SwipeMenuReyclerView:

  • 第二步,设置菜单创建器、菜单点击监听:

  • 第三步,菜单创建器创建菜单:

  • 第四步,继承SwipeMenuAdapter,和正常的Adapter一样使用:

就到这里,更多的细节,请参考Github上的demo和源码,源码demo下载传送门

3 2 收藏


直接登录