SwipeMenuListView实现类似于QQ侧滑删除效果
2017-05-09 18:49
387 查看
前言:最近,因为项目需要实现删除功能,为了美观采用了类似于QQ的那种侧滑删除效果,使用的是SwipeMenuListView的开源控件,现将使用方法记录分享一下,有兴趣的童鞋可以看看。效果如下图:
1、添加依赖
方法1:下载开源库代码,将代码复制粘贴到自己的项目代码中,推荐使用此方法(Android Studio开发也可以采用此方法),此方法便于修改和查看源代码
方法2:下载代码,将library导入,项目添加依赖库。
方法3:compile ‘com.baoyz.swipemenulistview:library:1.3.0’
2、使用
布局文件添加控件
初始化菜单配置
菜单与ListView关联
菜单点击事件
遇到的问题,及解决方法
OK,到此就实现了简单的侧滑删除!
1、添加依赖
方法1:下载开源库代码,将代码复制粘贴到自己的项目代码中,推荐使用此方法(Android Studio开发也可以采用此方法),此方法便于修改和查看源代码
方法2:下载代码,将library导入,项目添加依赖库。
方法3:compile ‘com.baoyz.swipemenulistview:library:1.3.0’
2、使用
布局文件添加控件
<com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/lv_list" android:layout_width="match_parent" android:layout_height="match_parent" />
初始化菜单配置
// 初始化菜单配置 SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // 创建删除功能菜单 SwipeMenuItem openItem = new SwipeMenuItem(project3d.this); // 设置菜单的背景 openItem .setBackground(new ColorDrawable(Color.rgb(0xf9, 0x3f, 0x2f))); // 设置菜单宽度(必须设置,否则不显示) openItem .setWidth(160); // 菜单标题 openItem .setTitle("打开"); // 设置标题文字大小 openItem .setTitleSize(20); // 标题颜色 openItem .setTitleColor(Color.WHITE); // 添加到menu menu.addMenuItem(openItem ); // 创建添加功能菜单 SwipeMenuItem deleteItem = new SwipeMenuItem(project3d.this); // 设置菜单的背景 deleteItem .setBackground(new ColorDrawable(Color.rgb(0xf9, 0x3f, 0x2f))); // 设置菜单宽度(必须设置,否则不显示) deleteItem .setWidth(160); // 菜单标题 deleteItem .setTitle("删除"); // 设置标题文字大小 deleteItem .setTitleSize(20); // 标题颜色 deleteItem .setTitleColor(Color.WHITE); // 添加到menu menu.addMenuItem(deleteItem ); } };
菜单与ListView关联
mInvestigationList.setMenuCreator(creator);
菜单点击事件
mInvestigationLi 981f st.setOnMenuItemClickListener(new OnMenuItemClickListener() { // position为点击的ListView条目位置,index为点击的菜单的位置 @Override public void onMenuItemClick(int position, SwipeMenu menu, int index) { switch (index) { case 0: UIUtils.showToast(project3d.this, "点击了打开菜单"); break; case 1: UIUtils.showToast(project3d.this, "点击了删除菜单"); break; } } });
遇到的问题,及解决方法
问题描述:删除操作时发现删除的位置发生错乱,删除第一条,结果最后一条被删除了 问题原因:SwipeMenuAdapter这个类的getview方法有一个判断,是为了缓存加的 问题解决方案:注释掉判断操作
@Override public View getView(int position, View convertView, ViewGroup parent) { SwipeMenuLayout layout = null; //2017.05.05修改,注释掉是为了解决删除位置错乱问题 //if (convertView == null) { View contentView = mAdapter.getView(position, convertView, parent); SwipeMenu menu = new SwipeMenu(mContext); menu.setViewType(mAdapter.getItemViewType(position)); createMenu(menu); SwipeMenuView menuView = new SwipeMenuView(menu, (SwipeMenuListView) parent); menuView.setOnSwipeItemClickListener(this); SwipeMenuListView listView = (SwipeMenuListView) parent; layout = new SwipeMenuLayout(contentView, menuView, listView.getCloseInterpolator(), listView.getOpenInterpolator()); layout.setPosition(position); // } else { // layout = (SwipeMenuLayout) convertView; // layout.closeMenu(); // layout.setPosition(position); // View view = mAdapter.getView(position, layout.getContentView(), // parent); // } return layout; }
OK,到此就实现了简单的侧滑删除!
相关文章推荐
- Android listview 侧滑 SwipeListView 详解 实现微信,QQ等滑动删除效果
- Android使用Item Swipemenulistview实现仿QQ侧滑删除功能
- SwipeListView 具体解释 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详细介绍(实现微信,QQ等滑动删除效果)
- SwipeMenuListView实现QQ侧滑选项
- SwipeListView 详解 实现微信 QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- Android 第三方开源SwipeMenuListView(QQ侧滑置顶,删除)
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView实现QQ消息侧滑删除功能
- 仿QQlistView滑动删除---使用SwipeMenuListView实现
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 具体解释 实现微信,QQ等滑动删除效果