在项目中遇到一个需求,listview有一个比较复杂的item,item中有整体响应区事件,也有其他view的点击响应,listview的父亲要求滑动,在点击listview区域时要求在滑动的只是只滑动listview,但一般做法无法满足要求,listview无法兼顾点击事件与滑动。

解决的办法是,给item设置一个rootview,重写rootview的onTouchEvent

@Override
public boolean onTouchEvent(MotionEvent event) {
final int action = event.getAction();
if(action == MotionEvent.ACTION_MOVE) {
if(null != scrollView) {
customListView.setEventFlag(true);
return false;
}
}
return super.onTouchEvent(event);

}

再实现一个定制的listview,重写onIntercepotTouchEvent方法:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
if(MotionEvent.ACTION_UP == ev.getAction()) {
//父view允许滑动
}else {
//禁止父view滑动
}
if(eventFlag) {
eventFlag = !eventFlag;
return true;
}
return super.onInterceptTouchEvent(ev);
}

这样既可实现item的点击与滑动共存。原理是onTouchEvent事件是向上传递的,在view处理完事件后,截取move,做截取标志,listview截取所有的事件,然后自己做处理。

listview 不可滑动问题解决相关推荐

  1. Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18311877),请尊重他人的辛勤劳动成果,谢谢! 今天还是 ...

  2. android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法

    今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...

  3. Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199) 我在上一篇文章中Android 带你从源码的角度解析 ...

  4. Android开发知识(二十三)从源码角度分析ListView的滑动复用机制

    文章目录 前言 认识RecycleBin机制 ListView的布局方式 ListView的元素创建流程 ListView滑动加载过程 前言 ListView作为一个常用的列表控件,虽然现在基本被Re ...

  5. 仿QQ侧滑删除,Listview上下滑动,Listview的iteam的点击事件等bug的解决

         网上ListView横向滑动删除Item这样的介绍也很多,但实用性不强,没有解决横向滑动和item的点击事件的冲突,废话少说,有图有真相,下面直接上代码 1:侧滑 2:侧滑的点击事件 3:i ...

  6. 自定义listView添加滑动删除功能

    今天研究了一下android里面的手势,结合昨天学习的自定义View,做了一个自定义的listview,继承自listView,添加了条目的滑动手势操作,滑动后出现一个删除按钮,点击删除按钮,触发一个 ...

  7. android 继承ListView实现滑动删除功能.

    在一些用户体验较好的应用上,可以经常遇见   在ListView中  向左或向右滑动便可删除那一项列表. 具体实现  则是继承ListView实现特定功能即可. (1). 新建 delete_butt ...

  8. 关于listview上下滑动imageview图片混乱问题

    问题代码: @Override public View getView(int position, View view, ViewGroup parent) {final ViewHolder mVi ...

  9. 基于ListView的滑动删除、添加、修改

    在很多App应用当中我们都看见过各式各样的listview,当然,我们自己对于这个控件肯定也是相当熟悉,那么为什么要在listview中嵌套进一个侧滑删除等这些细节性的功能呢? 其实原因很简单,就是用 ...

最新文章

  1. Asp.NET中常用的一些优化性能的方法
  2. 高效排序算法(希尔排序)
  3. Which of the following statement(s) equal(s) value 1 in C programming language?
  4. python agg函数_Python Pandas Series.agg()用法及代码示例
  5. opencv计算物体姿态旋转_物体的三维识别与6D位姿估计:PPF系列论文介绍(五)...
  6. GoogLeNet——CNN经典网络模型详解(pytorch实现)
  7. C++编程--函数与委托(2)
  8. ERmaster 数据库设计 ,显示中文逻辑名
  9. 甘肃电大计算机考试题2007,甘肃电大2021年春季《C++语言程序设计(专)》形成性考核二满分...
  10. ML-Visuals机器学习、深度学习绘图模板素材分享
  11. 计算机组成原理习题答案(蒋本珊)
  12. 网站建设公司该不该把web前端外包出来!精辟
  13. 我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知
  14. ClickHouse 数据插入、更新与删除操作 SQL
  15. 隔壁老王的iptables防火墙
  16. PPmoney基于Kubernetes的DevOps实践
  17. 时钟服务器工作原理,Windows 时间服务的工作原理
  18. 虚云法师:但尽凡心,别无圣解
  19. 【控制】自适应控制,模型参考自适应控制,参考模型如何求取,有程序有图
  20. 新东西012--Android软键盘弹出位置控制

热门文章

  1. 如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
  2. 精品软件 推荐 卡巴斯基安全软件 本人使用过的效果最好的杀毒软件之一哟...
  3. maven-dependency-plugin (goals copy-dependencies, unpack) is not support解决办法
  4. Android中SurfaceView用法示例
  5. MongoDB数据库(二):增删查改
  6. 项目总结一:情感分类项目(emojify)
  7. VertrigoServ 2.21配置phpmyadmin
  8. 1424 零树 (树形DP)
  9. grafana高可用架构
  10. OSGI常用控制台命令