Android 仿QQ侧滑item点击删除按钮,删除数据

2019-05-05  本文已影响0人  清风兑酒

1.首先用RecyclerView进行正常的书写
2.添加依赖:

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

3.把RecyclerView换成

SwipeMenuRecyclerView

4.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" />

5.红色框里的是重点,还有一定要写在适配器上面

Mrv.setLayoutManager(new LinearLayoutManager(this));

        //添加item分割线--------设置分割线颜色为灰色
        Mrv.addItemDecoration(new DefaultItemDecoration(Color.GRAY));
        //设置添加删除按钮
        Mrv.setSwipeMenuCreator(swipeMenuCreator);
        //设置滑动菜单item监听
        Mrv.setSwipeMenuItemClickListener(swipeMenuItemClickListener);
 // 设置菜单监听器。
    SwipeMenuCreator swipeMenuCreator = 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(informActivity.this)
                    .setBackground(R.color.c_FA6A13)
                    .setTextColor(Color.WHITE)
                    .setText("删除")
                    .setWidth(width)
                    .setHeight(height);
            swipeRightMenu.addMenuItem(deleteItem);
        }
    };

    // 菜单点击监听。
    SwipeMenuItemClickListener swipeMenuItemClickListener = 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(informActivity.this, "list第" + adapterPosition + "; 右侧菜单第" + position, Toast.LENGTH_SHORT).show();
            }

        }
    };
上一篇 下一篇

猜你喜欢

热点阅读