Android仿QQ侧滑删除-ListView

第一步:
导依赖:

implementation 'com.github.mcxtzhang:SwipeDelMenuLayout:V1.3.0'

导完依赖后要在buildTypes下添加一个

 allprojects {
        repositories {
            maven { url "https://jitpack.io" }
        }
    }

第二步:
先把我们的item布局贴出来:

 <ListView
        android:id="@+id/lsv_side_slip_delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

第三步:
在Activity中定义方法写对应的每个数据

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sideslip);
        initView();// 控件初始化
        setData();// 初始化模拟数据
        setAdapter();// 创建adapter,listview设置adapter
        setListeners();// 设置监听
    }

  1. 控件初始化:
 private void initView() {
        mLsvSideSlipDelete = (ListView) findViewById(R.id.lsv_side_slip_delete);
    }
  1. 初始化模拟数据:
 private void setData() {
        for (int i = 0; i < 16; i++) {
            list.add("侧滑删除" + (i + 1));
        }
    }
  1. 创建adapter,ListView设置adapter
private void setAdapter() {
        adapter = new SideSlipAdapter(this, list);
        mLsvSideSlipDelete.setAdapter(adapter);
    }
  1. 设置监听
 private void setListeners() {
        if (adapter != null) {
            // 注册监听器,回调用来刷新数据显示
            adapter.setDelItemListener(new SideSlipAdapter.DeleteItem() {
                @Override
                public void delete(int pos) {
                    list.remove(pos);
                    adapter.notifyDataSetChanged();
                }
            });
        }
    }

第四步:
适配器当中的布局是:

<?xml version="1.0" encoding="utf-8"?>
<com.mcxtzhang.swipemenulib.SwipeMenuLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:clickable="true"
    app:swipeEnable="true"
    app:leftSwipe="true"
    app:ios="true">
    <!--展示内容-->
    <TextView
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/selectableItemBackground"
        android:gravity="center"
        android:text="项目中我是任意复杂的原ContentItem布局"/>
    <!-- 侧滑菜单选项,这里可以有多个选项。我这里就用了置顶和删除两个选项-->
    <Button
        android:id="@+id/btnTop"
        android:layout_width="60dp"
        android:layout_height="match_parent"
        android:background="@android:color/darker_gray"
        android:text="置顶"
        android:textColor="@android:color/white"/>

    <Button
        android:id="@+id/btnDelete"
        android:layout_width="60dp"
        android:background="@android:color/holo_red_dark"
        android:layout_height="match_parent"
        android:text="删除"
        android:textColor="@android:color/white"/>

</com.mcxtzhang.swipemenulib.SwipeMenuLayout>

最后的效果就是这样的了
Android仿QQ侧滑删除-ListView