1.首先用RecyclerView进行正常的书写
2.添加依赖:
compile'com.yanzhenjie:recyclerview-swipe:1.1.4'
3.把RecyclerView换成
SwipeMenuRecyclerView
xml中的布局
<com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView android:id="@+id/cmm_recyc" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" />
4.红色框里的是重点,还有一定要写在适配器上面
5.
// 设置菜单监听器。SwipeMenuCreatorswipeMenuCreator =new SwipeMenuCreator() {// 创建菜单: @Override public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu,int viewType) {int width = getResources().getDimensionPixelSize(R.dimen.dp_70);int height = ViewGroup.LayoutParams.MATCH_PARENT; SwipeMenuItem deleteItem =new SwipeMenuItem(CommoditManagementActivity.this) .setBackground(R.drawable.selector_red) .setImage(R.mipmap.ic_action_delete) .setTextColor(Color.WHITE) .setText(R.string.DeleteText) .setWidth(width) .setHeight(height); swipeRightMenu.addMenuItem(deleteItem); }};
6.
// 菜单点击监听。SwipeMenuItemClickListenerswipeMenuItemClickListener =new SwipeMenuItemClickListener() {@Override public void onItemClick(SwipeMenuBridge menuBridge) {// 任何操作必须先关闭菜单,否则可能出现Item菜单打开状态错乱。 menuBridge.closeMenu();int direction = menuBridge.getDirection();//左边还是右边菜单 int adapterPosition = menuBridge.getAdapterPosition();// ecyclerView的Item的position。 int position = menuBridge.getPosition();// 菜单在RecyclerView的Item中的Position。 if (direction == SwipeMenuRecyclerView.RIGHT_DIRECTION) {list.remove(adapterPosition);//删除item adapter.notifyDataSetChanged(); Toast.makeText(CommoditManagementActivity.this,"list第" + adapterPosition +"; 右侧菜单第" + position, Toast.LENGTH_SHORT).show(); } }};
7.删除键宽的属性文件
效果图如下:
注意:设置颜色时好像只能用Color.RED这种格式的,你们可以试试别的方法