android触摸事件透传,Android中父View穿透子View响应长按事件
释放双眼,带上耳机,听听看~!
需求
在实际项目开发中,有这样的需求,长按整个ViewGroup响应长按事件,例如长按弹出对话框或者popwindow等等
问题
针对这个需求出现两种情况:
1,当ViewGroup中无任何子view的时候,长按事件按压ViewGroup任何位置都可以响应.
2,当ViewGroup中有子view的时候,例如包含TextView,长按子view的时候,就无法响应ViewGroup的长按事件,长按子view以外的区域可以影响其长按事件.
显然这样是不符合我们的需求,那么如何解决此问题呢?
解决方案
1,给子view也添加长按事件,调用父view的长按逻辑
特点:这种方式可以实现,但是子view较多的情况下,需要添加较多长按事件,会增加代码复杂度
2,给子view设置触摸监听,在回调方法抬起的时候,响应view的长按事件
特点:需要处理多个子view的触摸监听.
代码示意:
tvContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
getViewGroup().performLongClick();
}
return false;
}
});
3,父view拦截长按事件,不让他传递给子view.
4,更好的方案有待思考和研究,欢迎提供宝贵意见!!!
android触摸事件透传,Android中父View穿透子View响应长按事件相关推荐
- android点击事件透传,点击事件透传机制
点击屏幕的事件传递是: Activity将事件交给 所属的Window,如果返回true,整个事件循环就结束了,返回false意味着事件没人处理,所有view的onTouchevent ,都反回了fa ...
- 微信小程序——1、自定义顶部渐变色2、封装好的自定义顶部栏(父组件获取子组件的点击事件)
1.自定义顶部渐变色 第一种使用代码实现渐变 效果图: .json代码 "navigationStyle":"custom" .wxml代码 <view ...
- mfc获取子窗口句柄_前端设计-JavaScript中父窗口与子窗口间的通信
父窗体与子窗体之间的通信 在之前文章讲解windows程序设计过程中,我们曾描述了windows程序窗口之间通信与控制实现方法与过程,如窗体之间参数传递等.本文主要从Web程序开发前端JavaScri ...
- artdialog4.1.7 中父页面给子页面传值
artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法: 在父页面声明全局变量 var returnValue=" ",子页面用art.dialog.opener ...
- Javacript中父节点、子节点、兄节点的简单用法[0306]
Javacript中父节点.子节点.兄节点的简单用法[0306] 一.开解: 本文主要讲父子兄节点的简单用法,至于怎么取得节点,可以参考文[0301]和[0302],视情况而定,有时候我们分别会用到父 ...
- Android客户端Push 透传与通知栏
目前的消息推送方式主要有两种:通知和透传. 什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...
- Android Jenkins 参数透传配置
Step 1 设置参数 Step 2 透传设置 在Build Steps(构建步骤中)选择高级 如图,在上面Project properties 中配置对应想透传的参数如: BUILD_TYPE=${ ...
- android环信透传,环信高级篇-透传和拓展
由于App开发中遇到了:送花和打赏,但是我们使用的即时通讯是环信,并没有直接的接口实现,而是需要我们使用里面比较特殊的技术:拓展和透传 透传:传递用户头像和昵称 拓展:实现非正常消息(打赏,送花,送礼 ...
- android x86 GPU透传,显卡虚拟化方案之GPU透传(一)背景介绍篇
之前的文章提到使用conda来进行AI开发环境的搭建,可以看出在主机(host)上搭建复杂的AI环境,有时非常耗费时间和精力.其实我们可以采用一种精简的方式,那就是使用虚拟化技术. 比如我们可以使用d ...
最新文章
- C#判断文件是否存在方法
- VS 2017显示“高级保存选项”命令操作方法
- Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- 10个常用的代码简写技术,看懂一种是入门,全部看懂是大神!
- E打开https网站时,提示此网站的安全证书有问题(证书无效)
- 西建大历年电子与通信工程复试真题_历年复试试题回忆
- 美工一流的个人网站源码系列(2),不漂亮你可以不下载!
- java 会话共享_java – servlet如何工作?实例化,会话,共享变量和多线程
- Mybatis_接口编程
- 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
- 经验 | 我的研究生这三年
- springmvc 表单中文乱码解决方案
- 网易云信 web demo体验-会议
- centos 替换阿里源
- 用Sqldbx 连接Mysql
- css的背景颜色有哪些,css背景颜色、背景图片,以及列表的多种样式
- java 分层处理解耦_后端分层架构如何解耦?
- 面部识别法案正式通过?微软总裁赞不绝口——华盛顿州重大突破!
- Unity3D学习记录——爆炸特效
- matlab下载保姆级安装教程,哪个版本比较好些?
热门文章
- simulink显示多个数据_Stateflow数据介绍(一)
- html5编辑器自带js,javaScript编辑器-HBulider
- java 保护类型_Java 类的受保护访问(学习 Java 编程语言 046)
- python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
- mysql模板引擎有哪些_ecshop用的是什么模板引擎?
- 计算机安装了打印驱动无法打印,安装打印机的时候为什么电脑无法正常识别打印机?...
- opencv三维重建_使用iPhone相机和OpenCV来完成3D重建(第一部分)
- arcengine 加载地图不显示_用LSV下载城市地图、全省地图教程
- java怎么给类中的私有变量赋值_Java核心技术笔记分享------第二章 类与对象
- 如何系统学习机器学习?