左滑删除按钮的新思路

原创 2016年05月31日 16:02:21
在看了gouyuhua2008的高仿微信对话列表滑动删除效果后,记录下大致的思路。
大概一年半以前有不少app加入了列表项左滑删除的功能,个人觉得这个功能很不错,就试着去写个demo实现了一下。
回忆了一下当时实现的过程,步骤主要有三:
1.重写ListView的拦截事件,在move处判断是左右移动,上下移动,还是点击范围内的移动。判断是上下移动就拦截,否则不拦截,让ItemView去处理事件。
2.在ItemView的OnTouchEvent里处理左右滑动和点击范围内的移动,在Up的时候判断是点击范围内移动则当点击事件处理。
3.通过scroller处理左右滑动,并且在点击的时候回调点击事件。


这样可以解决ListView和ItemView的滑动,并且可以处理单击事件。

但是这样有一个很大的弊端,就是单击事件我是通过在move的时候move的dx和dy很小,此时up我当作单击处理,但是在longClick的时候就得用更麻烦的逻辑去处理。

原因就是处理了滑动冲突,触摸事件被onTouchEvent里消费了,所以ItemView无法处理。


在看了一篇博客后,发现一个新思路。

在ItemView实现一个public方法,后续被ListView调用。


就是所有的触摸事件全都交给ListView中的onTouchEvent去处理。在onTouchEvent通过pointToPosition(x, y)去获得item在列表的位置,但是这个动作需要之前就在adapter的数据对象里保存这个ItemView


这个时候获取到这个ItemView,再对ItemView调用之前实现的方法。
整个过程都是在ListView的onTouchEvent中完成的,所以也不需要去解决什么滑动冲突,而且逻辑很清晰,在ListView中改变了一个Item而已,ViewGroup对子View的改变一样,不涉及事件的分发。


blog代码地址:http://blog.csdn.net/gouyuhua2008/article/details/17584033

Objective-C修改cell左滑按钮背景色

TableView编辑时左滑按钮的默认背景色是红色的,如图所示: 开发中可能会有改变这个按钮背景色的需求,如微信的通讯录左滑备注按钮就是灰色的,实现这个需求我们需要自定义cell,在自定义的ce...
  • liu1347508335
  • liu1347508335
  • 2016年04月12日 18:11
  • 2205

高仿微信实现左滑显示删除按钮功能

在实际项目中删除列表中的某一项是非常常见的功能,传统的做法可以使用长按监听器等,而现在流行的做法是左滑弹出删除按钮,微信,QQ等都是这么做的,下面做一个示例,代码如下: 主页面MainActivity...
  • u010142437
  • u010142437
  • 2015年06月30日 17:50
  • 2220

Android中ListView条目带有左滑显示删除按钮的总结

1.添加依赖 compile 'com.baoyz.swipemenulistview:library:1.3.0' 2.XML文件         android:id="@+id/l...
  • GXL_1899
  • GXL_1899
  • 2017年05月25日 17:13
  • 521

UITableViewCell删除按钮的背景颜色,字体大小可以改变吗?

答案是肯定的! 我们需要重载cell的 - (void)layoutSubviews方法。 我们先来看看cell上都有些什么东西吧 - (void)layoutSubviews { ...
  • xuping901022xp
  • xuping901022xp
  • 2015年09月25日 15:11
  • 2018

UITableView自定义左滑删除按钮(带图片)

转载请注明本文出自surfaceeee的博客(http://blog.csdn.NET/u010519146/article/details/42882635),请尊重他人的辛勤劳动成果,谢谢!本人一...
  • KurryGo
  • KurryGo
  • 2016年12月12日 11:24
  • 3279

修改UITableViewCell左滑删除按钮的样式和自定义

原文:http://www.cnblogs.com/wjblogs/p/5367052.html 在日常开发中我们可能会遇到需要自定义UITableViewCell左滑删除按钮的样式,网上也有许...
  • qq_31292239
  • qq_31292239
  • 2017年07月26日 13:43
  • 459

在表格视图中,左滑动出现删除按钮,进行删除

1:在对象库中拖动Swipe Gesture Recognizer到表格视图控制器中,设置其属性 //向左滑动的手势 - (IBAction)handleSwipe:(UISwipeGestureRe...
  • bun12345
  • bun12345
  • 2015年05月03日 15:35
  • 313

ios 设置tableview左滑删除按钮的相关属性

自定义cell时在layoutSubviews处理 - (void)layoutSubviews {     [super layoutSubviews];     [self de...
  • silence_0313
  • silence_0313
  • 2016年08月08日 10:05
  • 1327

android 类似qq左滑露出删除按钮

android 类似qq左滑露出删除按钮在listview的item布局中将此控件覆盖于下层隐藏的控件之上向左滑动使得下层布局暴露出来 import android.content.Context;...
  • u011531713
  • u011531713
  • 2016年01月20日 10:02
  • 1857

swift tableview的左滑删除,左滑显示自定义图片。

1、是否允许tableview的cell能不能编辑 override func tableView(tableView: UITableView, canEditRowAtIndexPath i...
  • OH_YEAR
  • OH_YEAR
  • 2016年03月14日 11:02
  • 3004
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:左滑删除按钮的新思路
举报原因:
原因补充:

(最多只允许输入30个字)