第一步:下载源码包(添加依赖也可以)
https://github.com/baoyongzhang/SwipeMenuListView
第二步:复制文件到项目录下
第三步:File –> New –> Import Moudle 报错就修改 compileSdkVersion minSdkVersion targetSdkVersion和项目的build.gradle里的值一样即可
第四步:添加依赖,点击 File–>Project Structure,之后选择Dependencies 右侧绿色的+,选择Module Dependency,这样就导进来了。
第五步:listview三部曲:
实例化SwipeMenuListView,实例化adapter,设置SwipeMenuListView的adapter
第六步:设置侧滑menu
creator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
// create "open" item
SwipeMenuItem openItem = new SwipeMenuItem(
getApplicationContext());
// 设置背景颜色
openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
0xCE)));
// 设置宽度
openItem.setWidth(dp2px(90));
// 设置标题
openItem.setTitle("打开");
// 设置文字大小
openItem.setTitleSize(18);
//设置标题颜色
openItem.setTitleColor(Color.WHITE);
// 添加menu
menu.addMenuItem(openItem);
SwipeMenuItem deleteItem = new SwipeMenuItem(
getApplicationContext());
deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
0x3F, 0x25)));
deleteItem.setWidth(dp2px(90));
deleteItem.setTitle("删除");
deleteItem.setTitleSize(18);
deleteItem.setTitleColor(Color.WHITE);
menu.addMenuItem(deleteItem);
}
};
// 设置 creator
lv_chat.setMenuCreator(creator);
第七步:设置三个监听器:
为ListView设置菜单项点击监听器,来监听菜单项的点击事件
mListView.setOnMenuItemClickListener(new
SwipeMenuListView.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
//position:列表项的下标
//index:菜单项的下标
ApplicationInfo item = mAppList.get(position);
switch (index) {
case 0:
//自己处理操作
break;
case 1:
//自己处理操作
break;
}
// true:其他已打开的列表项的菜单状态将保持原样,不会受到其他列表项的影响而自动收回
// false:已打开的列表项的菜单将自动收回
return false;
}
});
// 设置侧滑监听器,监听侧滑开始和侧滑结束
// 注意:当我们将一个已经侧滑出来的菜单重新收回去的时候并不会调用onSwipeStart方法,
// 但是结束的时候依然会调用onSwipeEnd方法
mListView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
@Override
public void onSwipeStart(int position) {
// swipe start
}
@Override
public void onSwipeEnd(int position) {
// swipe end
}
});
// 设置监听Menu状态改变的监听器(Menu的打开和关闭)
mListView.setOnMenuStateChangeListener(new SwipeMenuListView.OnMenuStateChangeListener() {
@Override
public void onMenuOpen(int position) {
}
@Override
public void onMenuClose(int position) {
}
});