详解SwipeListView框架实现微信\QQ滑动删除效果_Android

QQ或者微信出现过滑动,最近联系人列表,可以删去当前选中的联系人,这个功能很棒。

就是试着做了下。其实是使用了开源框架SwipeListView 。

 

SwipeListView 与一般的ListView使用方式差不多,只是增加了一些特殊功能。 

<com.fortysevendeg.swipelistview.SwipeListView
  xmlns:swipe="http://schemas.android.com/apk/res-auto"
  android:id="@+id/example_lv_list"
  android:listSelector="#00000000"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  swipe:swipeFrontView="@+id/front"
  swipe:swipeBackView="@+id/back"
  swipe:swipeActionLeft="[reveal | dismiss]"
  swipe:swipeActionRight="[reveal | dismiss]"
  swipe:swipeMode="[none | both | right | left]"
  swipe:swipeCloseAllItemsWhenMoveList="[true | false]"
  swipe:swipeOpenOnLongPress="[true | false]"
  swipe:swipeAnimationTime="[miliseconds]"
  swipe:swipeOffsetLeft="[dimension]"
  swipe:swipeOffsetRight="[dimension]"
  /> 

•swipeFrontView -ListView Item正常显示的控件Id,且必须与Item的布局文件中的控件id一样
•swipeBackView - 手指滑动时显示的,隐藏在FrontView后面,且必须与item的布局文件中控件Id一样
•swipeActionLeft - 左滑的动作,默认reveal,即显示BackView,还有dismiss,choice会触发响应的方法。
•swipeActionRight - 右滑动作,其他同上
•swipeMode - Default: 'both' 设置左滑、右滑、都支持
•swipeCloseAllItemsWhenMoveList - 当滚动listview时,关闭所有展开的Item,最好不要设置为false,由于item的   
• 复用,false存在一些问题。
•swipeOpenOnLongPress - Default: 'true' 长按时触发显示
•swipeAnimationTime - 动画时间长度
•swipeOffsetLeft - left offset 左偏移量
•swipeOffsetRight - right offset 右偏移量

   mSwipeListView = (SwipeListView) findViewById(R.id.id_swipelistview);
  mAdapter = new DataAdapter(this, mDatas , mSwipeListView);
  mSwipeListView.setAdapter(mAdapter); 

  mSwipeListView.setSwipeListViewListener(new BaseSwipeListViewListener()
  {
   @Override
   //重写BaseSwipeListViewListener父类需要的方法
   };

使用方式很简单 和普通的ListView 相似,不需要多说。 

对于 ListView的Item删除单个元素,只需要在Adapter中处理button的点击事件,或者写一个回调传回Activity中处理

我这里给出在Adapter中处理的方式的代码: 

 @Override
 public View getView(final int position, View convertView, ViewGroup parent)
 {
  convertView = mInflater.inflate(R.layout.list_item, null); 

  TextView tv = (TextView) convertView.findViewById(R.id.id_text);
  Button del = (Button) convertView.findViewById(R.id.id_remove);
  tv.setText(mDatas.get(position));
  del.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View v)
   {
    mDatas.remove(position);
    notifyDataSetChanged();
     /**
     * 关闭SwipeListView
     * 不关闭的话,刚删除位置的item存在问题
     * 在监听事件中onListChange中关闭,会出现问题
     */
    mSwipeListView.closeOpenedItems();
   }
  }); 

  return convertView;
 }

源码下载:https://github.com/honjane/SwipeListViewDemo

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索swipelistview框架、swipemenulistview、swipelistview、swipelistview github、swipelistview jar包,以便于您获取更多的相关知识。

时间: 2025-01-30 02:55:05

详解SwipeListView框架实现微信\QQ滑动删除效果_Android的相关文章

Android使用SwipeListView实现类似QQ的滑动删除效果_Android

QQ的滑动删除效果很不错,要实现这种效果,可以使用SwipeListView. 1. 下载com.fortysevendeg.swipelistview这个项目(以前GitHub上有,现在GitHub上没有了,百度了很多次才下载到的),导入Eclipse,右键单击,选择Properties->Android,选中Library下面的IsLibrary. 2. 新建一个项目MySwipeListView,加入SwipeListView这个库. 3. 在主窗体里面放入一个SwipeListView控

详解Android中实现ListView左右滑动删除条目的方法_Android

使用Scroller实现绚丽的ListView左右滑动删除Item效果这里来给大家带来使用Scroller的小例子,同时也能用来帮助初步解除的读者更加熟悉的掌握Scroller的使用,掌握好了Scroller的使用我们就能实现很多滑动的效果.例如侧滑菜单,launcher,ListView的下拉刷新等等效果,我今天实现的是ListView的item的左右滑动删除item的效果,现在很多朋友看到这个效果应该是在Android的通知栏下拉中看到这个滑动删除的效果吧,我看到这个效果是在我之前的三星手机

详解Android中实现ListView左右滑动删除条目的方法

使用Scroller实现绚丽的ListView左右滑动删除Item效果 这里来给大家带来使用Scroller的小例子,同时也能用来帮助初步解除的读者更加熟悉的掌握Scroller的使用,掌握好了Scroller的使用我们就能实现很多滑动的效果.例如侧滑菜单,launcher,ListView的下拉刷新等等效果,我今天实现的是ListView的item的左右滑动删除item的效果,现在很多朋友看到这个效果应该是在Android的通知栏下拉中看到这个滑动删除的效果吧,我看到这个效果是在我之前的三星手

Android仿微信对话列表滑动删除效果_Android

微信对话列表滑动删除效果很不错的,借鉴了github上SwipeListView(项目地址:https://github.com/likebamboo/SwipeListView),在其上进行了一些重构,最终实现了微信对话列表滑动删除效果. 实现原理 1.通过ListView的pointToPosition(int x, int y)来获取按下的position,然后通过android.view.ViewGroup.getChildAt(position)来得到滑动对象swipeView  2.

Android仿微信对话列表滑动删除效果

微信对话列表滑动删除效果很不错的,借鉴了github上SwipeListView(项目地址:https://github.com/likebamboo/SwipeListView),在其上进行了一些重构,最终实现了微信对话列表滑动删除效果. 实现原理  1.通过ListView的pointToPosition(int x, int y)来获取按下的position,然后通过android.view.ViewGroup.getChildAt(position)来得到滑动对象swipeView  2

Android高仿微信对话列表滑动删除效果

前言 用过微信的都知道,微信对话列表滑动删除效果是很不错的,这个效果我们也可以有.思路其实很简单,弄个ListView,然后里面的每个item做成一个可以滑动的自定义控件即可.由于ListView是上下滑动而item是左右滑动,因此会有滑动冲突,也许你需要了解下android中点击事件的派发流程,请参考Android源码分析-点击事件派发机制.我的解决思路是这样的:重写ListView的onInterceptTouchEvent方法,在move的时候做判断,如果是左右滑动就返回false,否则返

详解ABP框架中领域层的领域事件Domain events_基础应用

在C#中,一个类可以定义其专属的事件并且其它类可以注册该事件并监听,当事件被触发时可以获得事件通知.这对于对于桌面应用程序或独立的Windows Service来说非常有用.但是, 对于Web应用程序来说会有点问题,因为对象是根据请求(request)被创建并且它们的生命周期都很短暂.我们很难注册其它类别的事件.同样地,直接注册其它类别的事件也造成了类之间的耦合性. 在应用系统中,领域事件被用于解耦并且重用(re-use)商业逻辑. 事件总线事件总线为一个单体(singleton)的对象,它由所

Android仿微信列表滑动删除 如何实现滑动列表SwipeListView

接上一篇,本篇主要讲如何实现滑动列表SwipeListView. 上篇完成了滑动控件SwipeItemView,这个控件是一个自定义的ViewGroup,作为列表的一个item,为列表提供一些方法让这个SwipeItemView能滑动其视图内容,同时滑动过程中会有顺滑的动画效果.而本篇讲的SwipeListView则是这个列表的具体实现了.当然啦,这个SwipeListView继承自ListView,为了实现我们需要的功能,重点就是重写ListView的onTouchEvent()以及onInt

JAVA Eclipse使用Maven构建web项目详解(SSM框架)

tips: 启动项目后,welcome-file的链接即为测试用例 https://github.com/sheep0704/JAVA-SSM-Spring 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId>