细砂般数不尽的星,有颗向我眨眼睛。——芥川龙之介的《侏儒的话》

SwipeRecyclerView 是一款基于 RecyclerView 的开源库,提供了许多增强功能,简化了常见交互的实现。这个库支持侧滑菜单、侧滑删除、长按拖拽、HeaderView 和 FooterView 添加、加载更多、点击监听等功能,适用于各种常见的 RecyclerView 使用场景。

使用此库的步骤非常简单。首先,你需要添加对应的库依赖:

如果你使用的是 Android support 库,添加以下依赖:

1
implementation 'com.yanzhenjie.recyclerview:support:1.3.2'

如果你使用的是 AndroidX 库,添加以下依赖:

1
implementation 'com.yanzhenjie.recyclerview:x:1.3.2'

接下来,在布局文件中加入 SwipeRecyclerView

1
2
<com.yanzhenjie.recyclerview.SwipeRecyclerView
... />

SwipeRecyclerView 提供的主要功能包括:

  1. 侧滑菜单:你可以为每个 RecyclerView 项目添加左侧或右侧的滑动菜单。菜单的内容可以自由定制,如添加删除、编辑按钮等。
  2. 长按拖拽:支持拖拽排序,可以轻松实现项目的重新排序。
  3. 侧滑删除:通过滑动项目可以删除数据项,支持与数据源同步更新。
  4. HeaderView 和 FooterView:可以动态添加或移除 RecyclerView 的头部和尾部视图,增强显示效果。
  5. 加载更多:自动或手动加载更多数据,特别适用于无限滚动的场景。
  6. 支持 AndroidX:从 1.3.0 版本起,已支持 AndroidX 和二级列表形式,可以用于更广泛的 Android 开发场景。

对于常见的侧滑菜单功能,代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
swipeRecyclerView.setSwipeMenuCreator(mSwipeMenuCreator);

SwipeMenuCreator mSwipeMenuCreator = new SwipeMenuCreator() {
@Override
public void onCreateMenu(SwipeMenu leftMenu, SwipeMenu rightMenu, int position) {
SwipeMenuItem deleteItem = new SwipeMenuItem(mContext)
.setText("Delete")
.setTextColor(Color.WHITE)
.setBackgroundColor(Color.RED)
.setWidth(200);
rightMenu.addMenuItem(deleteItem);
}
};

对于拖拽排序和侧滑删除,启用功能后即可直接进行交互:

1
2
recyclerView.setLongPressDragEnabled(true); // 启用拖拽排序
recyclerView.setItemViewSwipeEnabled(true); // 启用侧滑删除

SwipeRecyclerView 不仅使复杂的交互变得简单,而且可以高度自定义每个交互行为。无论是普通列表,还是带有 Header 和 Footer 的复杂布局,都能轻松实现。

想要更多自定义操作,比如自定义加载更多视图,只需继承 LoadMoreView 接口,按需求实现即可。库本身提供了一个默认的加载更多动画和视图,但也可以根据业务需求进行调整。