一 . 准备工作
AndroidStudio中添加依赖:
RecyclerView的依赖:
implementation 'com.android.support:recyclerview-v7:27.0.2'
添加侧滑删除依赖:
implementation 'com.yanzhenjie:recyclerview-swipe:1.1.4'
二 . 布局
布局中使用SwipeMenuRecyclerView
<com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView
android:id="@+id/rv_sideslip_delete"
android:background="#ffffff"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView>
三 . 代码
// 1. 初始化SwipeMenuRecyclerView控件
SwipeMenuRecyclerView rvSildeslipDelete = findViewById(R.id.rv_sideslip_delete);
// 2. 设置item侧滑菜单
private void setSideslipMenu() {
// 设置菜单创建器
rvSildeslipDelete .setSwipeMenuCreator(swipeMenuCreator);
// 设置菜单Item点击监听
rvSildeslipDelete .setSwipeMenuItemClickListener(mMenuItemClickListener);
}
// 3. 创建侧滑菜单
private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() {
@Override
public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {
SwipeMenuItem deleteItem = new SwipeMenuItem(MainActivity.this)
.setBackgroundColor(getResources().getColor(R.color.red_swipe_menu)) // 背景颜色
.setText("删除") // 文字。
.setTextColor(Color.WHITE) // 文字颜色。
.setTextSize(16) // 文字大小。
.setWidth(144) // 宽
.setHeight(MATCH_PARENT); //高(MATCH_PARENT意为Item多高侧滑菜单多高 (推荐使用))
swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。
}
};
// 4. 创建侧滑菜单的点击事件
private SwipeMenuItemClickListener mMenuItemClickListener = new SwipeMenuItemClickListener() {
@Override
public void onItemClick(SwipeMenuBridge menuBridge) {
// 任何操作必须先关闭菜单,否则可能出现Item菜单打开状态错乱。
menuBridge.closeMenu();
//在menuBridge中我们可以得到侧滑的这一项item的position (menuBridge.getAdapterPosition())
}
};