在开发过程中可能会遇到诸如此类问题:

1、在上下滑动的ScrollView中嵌套一个横滑列表,拖动横滑列表时可能引起ScrollView的上下滑动导致体验极差

2、在ViewPager中嵌套了一个横滑列表,在拖动横滑列表时同样可能导致ViewPager的tab切换。

requestDisallowInterceptTouchEvent 是ViewGroup类中的一个公用方法,参数是一个boolean值,官方介绍如下

Called when a child does not want this parent and its ancestors to intercept touch events with ViewGroup.onInterceptTouchEvent(MotionEvent).

This parent should pass this call onto its parents. This parent must obey this request for the duration of the touch (that is, only clear the flag after this parent has received an up or a cancel.

android系统中,一次点击事件是从父view传递到子view中,每一层的view可以决定是否拦截并处理点击事件或者传递到下一层,如果子view不处理点击事件,则该事件会传递会父view,由父view去决定是否处理该点击事件。在子view可以通过设置此方法去告诉父view不要拦截并处理点击事件,父view应该接受这个请求直到此次点击事件结束。

实际的应用中,可以在子view的ontouch事件中注入父ViewGroup的实例,并调用requestDisallowInterceptTouchEvent去阻止父view拦截点击事件

public boolean onTouch(View v, MotionEvent event) {ViewGroup viewGroup = (ViewGroup) v.getParent();switch (event.getAction()) {case MotionEvent.ACTION_MOVE: viewGroup.requestDisallowInterceptTouchEvent(true);break;case MotionEvent.ACTION_UP:case MotionEvent.ACTION_CANCEL:viewGroup .requestDisallowInterceptTouchEvent(false);break;}
}

  

转载于:https://www.cnblogs.com/txlbupt/p/4371290.html

关于ViewGroup中requestDisallowInterceptTouchEvent的用法相关推荐

  1. mysql中change用法,mysql 中alter的用法以及一些步骤

    mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...

  2. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  3. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  4. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  5. python中str的index什么意思_python中index的用法是什么

    index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen') >>> t ('A', 'l', ...

  6. php foreach是什么,php中foreach的用法是什么

    php中foreach的用法是:[foreach ($array as $value) {要执行代码;}],每进行一次循环,当前数组元素的值就会被赋值给$value变量,在进行下一次循环时,将得到数组 ...

  7. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  8. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  9. javascript 中 console 的用法

    javascript 中 console 的用法 视频 https://www.bilibili.com/video/BV1g7411L751?from=search&seid=1567656 ...

最新文章

  1. BERT 预训练模型及文本分类(情感分类)
  2. 【深度学习看手相】台湾学生获奖 AI 项目是科学还是伪科学?
  3. 从什么地方获取大数据_从哪收集大数据
  4. python处理csv文件案例_python3读取csv文件任意行列代码实例
  5. token干什么用_浅谈Token理解运用
  6. python三方库之BeautifuSoup
  7. 群发的我不回??!!
  8. 【亲测有效】运行docker ps 出现Got permission denied问题的解决方案
  9. python编程入门视频-2020年5个经典python编程入门视频教程推荐学习
  10. LINUX剪贴板调用接口获取数据
  11. 【数字信号去噪】基于matlab小波软阈值+硬阈值+改进的阈值高斯脉冲信号去噪【含Matlab源码 1706期】
  12. 平面直角坐标系中的旋转公式_难点解析丨空间直线、平面平行的判定及其性质...
  13. 十本数据结构与算法书籍推荐
  14. MAC OS读取NTFS格式硬盘
  15. 新型单词记忆法汇总(沪江英语):
  16. 20 行代码编写一个简单的端口扫描器
  17. D2 日报 2019年3月20日
  18. web课程设计网页规划与设计 :旅游景点网站设计——西安(20页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 HTML静态网页作业
  19. Linux下常用软件安装指南
  20. 什么是Tableau(BI工具)

热门文章

  1. 5G NR 随机接入过程(1)
  2. JavaScript prototype
  3. iBatis resultMap出错 The error happened while setting a property on the result object 解决办法
  4. Oracle中start with...connect by prior子句用法
  5. Invalid bound statement (not found): com.xxxx.dao.other.LoginDao.getUser
  6. TCP/IP协议学习
  7. Vue.js开发环境搭建的介绍
  8. jdbc_servlet基础增删改分页2(userinfo表的)
  9. ajax 中文乱码问题 主要是IE浏览器
  10. [转]【Android】9-patch图片以及例子说明