全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

android RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载

本文介绍的库中的侧滑效果借鉴自SwipeMenu,并对SipwMenu的源码做了修改与Bug修复,然后才开发出的SwipeRecyclerView。

  • 需要说明的是,本库没有对RecyclerView做大的修改,只是ItemView的封装。看起来是对RecyclerView的修改,其实仅仅是为RecyclerView添加了使用的方法API而已。
  • 本库已经更新了三个版本了,会一直维护下去,根据小伙伴的要求,以后也会添加一些其它功能。

SwipeRecyclerView将完美解决这些问题:

  • 以下功能全部支持:竖向ListView、横向ListView、Grid、StaggeredGrid四种形式。
  • RecyclerView 左右两侧 侧滑菜单。
  • 菜单横向排布、菜单竖向排布。
  • RecyclerView长按拖拽Item。
  • RecyclerView侧滑删除item。
  • 指定RecyclerView的某一个Item不能滑动删除或长按拖拽。
  • 某一个Item显示的不同的菜单(类似QQ)。
  • 用SwipeMenuLayout在任何地方都可以实现你自己的侧滑菜单。
  • 使用SwipeRecyclerView下拉刷新、自动加载更多。
  • 可以和ViewPager嵌套使用(兼容滑动冲突)。

引用方法

AndroidStudio使用Gradle构建添加依赖(推荐)

compile 'com.yanzhenjie:recyclerview-swipe:1.0.2'

Or Maven:

<dependency>
 <groupId>com.yanzhenjie</groupId>
 <artifactId>recyclerview-swipe</artifactId>
 <version>1.0.2</version>
 <type>pom</type>
</dependency>

我在开发SwipeRecyclerView时引用的RecyclerView版本如下:

compile 'com.android.support:recyclerview-v7:23.4.0'

效果图

gif有一些失真,且网页加载速度慢,可以[下载demo的apk][3]看效果。

侧滑菜单

  • 左右两侧都有菜单,主动调出第几个菜单或者手指滑动出现。
  • 根据ViewType某一个Item显示的不同的菜单(类似QQ)

和ViewPager嵌套 下拉刷新、自动加载更多

  • 和ViewPager嵌套使用,兼容了滑动冲突。
  • 可以和任何下拉刷新的框架结合,滑动到底部自动加载更多。

 

长按拖拽 侧滑菜单结合使用

  • 一直按住Item进行拖拽排序,支持List、Grid形式。
  • 长按拖拽并且和侧滑菜单结合使用。

 

直接滑动删除 长按拖拽Item排序

  • 侧滑直接删除,也可以长按拖拽排序。
  • 可以指定某个Item不能被侧滑删除、不能被长按拖拽。

 

竖型菜单 用自定义布局实现自己的菜单

  • 给菜单设置排列方向,支持横向、竖向。
  • 开发者用库中的SwipeMenuLayout开发自己的侧滑菜单。

 

使用介绍

这里列出关键实现,具体请参考demo,或者加最上面的交流群一起讨论。 更多教程请进入我的博客查看。

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

recyclerView.setLongPressDragEnabled(true);// 开启长按拖拽
recyclerView.setItemViewSwipeEnabled(true);// 开启滑动删除。
recyclerView.setOnItemMoveListener(onItemMoveListener);// 监听拖拽和侧滑删除,更新UI和数据。

添加Item侧滑菜单

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

// 打开第一个Item的左侧菜单。
recyclerView.openLeftMenu(0);

// 打开第一个Item的右侧菜单。
recyclerView.openRightMenu(0);

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

<com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView
 android:id="@+id/recycler_view"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

SwipeMenuRecyclerView swipeMenuRecyclerView = findViewById(R.id.recycler_view);
// 设置菜单创建器。
swipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);
// 设置菜单Item点击监听。
swipeMenuRecyclerView.setSwipeMenuItemClickListener(menuItemClickListener);

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

/**
 * 菜单创建器。在Item要创建菜单的时候调用。
 */
private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() {
 @Override
 public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {

  SwipeMenuItem addItem = new SwipeMenuItem(mContext)
   .setBackgroundDrawable(R.drawable.selector_green)// 点击的背景。
   .setImage(R.mipmap.ic_action_add) // 图标。
   .setWidth(size) // 宽度。
   .setHeight(size); // 高度。
  swipeLeftMenu.addMenuItem(addItem); // 添加一个按钮到左侧菜单。

  SwipeMenuItem deleteItem = new SwipeMenuItem(mContext)
   .setBackgroundDrawable(R.drawable.selector_red)
   .setImage(R.mipmap.ic_action_delete) // 图标。
   .setText("删除") // 文字。
   .setTextColor(Color.WHITE) // 文字颜色。
   .setTextSize(16) // 文字大小。
   .setWidth(size)
   .setHeight(size);
  swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。.

  // 上面的菜单哪边不要菜单就不要添加。
 }
};

更多使用方法请参考Demo。

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

public class MenuAdapter extends SwipeMenuAdapter<MenuAdapter.DefaultViewHolder> {

 @Override
 public int getItemCount() {
  return 0;
 }

 @Override
 public View onCreateContentView(ViewGroup parent, int viewType) {
  return null;
 }

 @Override
 public ViewHolder onCompatCreateViewHolder(View realContentView, int viewType) {
  return null;
 }

 @Override
 public void onBindViewHolder(MenuAdapter.DefaultViewHolder holder, int position) {
 }
}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# recyclerview长按拖拽  # recyclerview侧滑删除  # recyclerview侧滑菜单  # RecyclerView实现侧滑拖拽功能  # Android recyclerview实现拖拽排序和侧滑删除  # android的RecyclerView实现拖拽排序和侧滑删除示例  # RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除效果  # LRecyclerView侧滑iOS阻塞效果不完整的解决办法  # Android实现多线程断点续传  # Android实现断点续传功能  # 详解Android使用OKHttp3实现下载(断点续传、显示进度)  # android实现多线程下载文件(支持暂停、取消、断点续传)  # RecyclerView实现侧滑和网络断点续传  # 拖拽  # 自己的  # 请参考  # 第一个  # 自定义  # 自动加载  # 库中  # 的是  # 几个  # 都有  # 我在  # 也会  # 仅仅是  # 并对  # 可以实现  # 四种  # 就到  # 第二步  # 第三步  # 请进入 


相关文章: 常州自助建站费用包含哪些项目?  常州企业网站制作公司,全国继续教育网怎么登录?  ,在苏州找工作,上哪个网站比较好?  全景视频制作网站有哪些,全景图怎么做成网页?  如何撰写建站申请书?关键要点有哪些?  简历在线制作网站免费版,如何创建个人简历?  历史网站制作软件,华为如何找回被删除的网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何通过NAT技术实现内网高效建站?  如何通过FTP服务器快速搭建网站?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  定制建站是什么?如何实现个性化需求?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  linux top下的 minerd 木马清除方法  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何在Ubuntu系统下快速搭建WordPress个人网站?  宝塔Windows建站如何避免显示默认IIS页面?  内网网站制作软件,内网的网站如何发布到外网?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何规划企业建站流程的关键步骤?  公司网站设计制作厂家,怎么创建自己的一个网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  建站主机功能解析:服务器选择与快速搭建指南  如何配置WinSCP新建站点的密钥验证步骤?  海南网站制作公司有哪些,海口网是哪家的?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  在线教育网站制作平台,山西立德教育官网?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何用已有域名快速搭建网站?  为什么Go需要go mod文件_Go go mod文件作用说明  如何在云虚拟主机上快速搭建个人网站?  建站主机是否属于云主机类型?  如何用腾讯建站主机快速创建免费网站?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  ,想在网上投简历,哪几个网站比较好?  如何在新浪SAE免费搭建个人博客?  ,怎么用自己头像做动态表情包?  如何使用Golang table-driven基准测试_多组数据测量函数效率  建站之星安全性能如何?防护体系能否抵御黑客入侵?  中山网站制作网页,中山新生登记系统登记流程?  建站VPS能否同时实现高效与安全翻墙?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  网站制作公司,橙子建站是合法的吗?  设计网站制作公司有哪些,制作网页教程?  教学论文网站制作软件有哪些,写论文用什么软件 ?  网站制作服务平台,有什么网站可以发布本地服务信息?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何用搬瓦工VPS快速搭建个人网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。