首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

仅当被触摸的子项不可单击时,才会调用View parent的onTouch方法

当被触摸的子项不可单击时,会调用View parent的onTouch方法。在Android开发中,View是构成用户界面的基本组件,它们可以接收用户的触摸事件。当一个View的子项不可单击(即不具有点击事件)时,如果用户触摸到该子项,触摸事件会传递给该子项的父级View,即View parent。

onTouch方法是View类中的一个回调方法,用于处理触摸事件。当触摸事件传递到View parent时,如果View parent实现了onTouch方法,该方法会被调用。开发者可以在onTouch方法中编写自定义的触摸事件处理逻辑。

在实际开发中,可以通过重写View parent的onTouch方法来实现对子项不可单击时的触摸事件处理。例如,可以在onTouch方法中判断子项是否可单击,如果不可单击,则执行相应的操作,如显示一个提示信息或执行其他逻辑。

腾讯云提供了丰富的云计算产品和服务,可以满足各种应用场景的需求。以下是一些与云计算相关的腾讯云产品和产品介绍链接地址:

  1. 云服务器(CVM):提供可扩展的计算能力,支持多种操作系统和应用场景。了解更多:https://cloud.tencent.com/product/cvm
  2. 云数据库MySQL版(CDB):提供稳定可靠的关系型数据库服务,支持高可用、备份恢复等功能。了解更多:https://cloud.tencent.com/product/cdb_mysql
  3. 云存储(COS):提供安全可靠的对象存储服务,适用于图片、音视频、文档等各种类型的数据存储。了解更多:https://cloud.tencent.com/product/cos
  4. 人工智能平台(AI Lab):提供丰富的人工智能算法和模型,支持图像识别、语音识别、自然语言处理等应用。了解更多:https://cloud.tencent.com/product/ailab
  5. 物联网平台(IoT Hub):提供全面的物联网解决方案,支持设备接入、数据管理、远程控制等功能。了解更多:https://cloud.tencent.com/product/iothub

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 中 View 手势事件处理

类中提供两个常用接口中方法: GestureDetector.GestureListener: // 控件触摸一瞬间就会调用方法,对应触摸事件动作:MotionEvent.ACTION_DOWN...: /* * 严格单击行为,如果一次单击之后到系统认为双击时间段内没发生另一次单击行为时调用, * 也就是说这个方法调用了之后不可能再调用双击行为方法...单击一个位置之后,onDown 方法和 onSingleTapUp 方法调用,并且模拟器中显示出了单击位置坐标,接下来试试滑动: ?...最后还有一个问题:一个 View 中既有 onTouchEvent 方法并且设置了 OnTouchListener 接口,情况是怎样呢?...,那么我们就可以推出,OnTouchListener 接口 onTouch 方法优先级是高于 View 里面自带 onTouchEvent 方法 View 设置了 OnTouchListener

1.5K20

Android触摸事件_wpf触摸屏点击事件

触屏事件 三类简单触屏事件: 单击事件:OnClickListener 长按事件:OnLongClickListener 触摸事件:OnTouchListener 这些方法都是View,所以像TextView...View view)即可 长按事件 长按事件有单击事件前四种方法,但是没有最后一种方法。...返回true,表示消耗掉了这次事件,也就是说不会有单击效果。如果返回法false,则在松手时候会触发单击事件。...触摸事件 触摸事件有onTouch方法有参数MotionEvent event,通过对象event方法getX()和getY()可以获取触摸出横纵坐标。...本站提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

2.1K20
  • android view事件分发机制_android事件分发流程图

    监听事件,具体运行结果如下: 稳稳点击Button打印如下: 稳稳点击除过Button以外其他地方打印如下: 收指点击Button按在Button上晃动了一下松开后打印如下...如果控件(View)是enable且onTouch返回true情况下,dispatchTouchEvent直接返回true,不会调用onTouchEvent方法。...dispatchTouchEvent在进行事件分发时候,只有前一个action返回true,才会触发下一个action。...(ViewonTouchEvent直接返回true而不调运super方法,事件派发机制如同4.2.1类似,只是最后up事件没有触发onClick而已(因为没有调用super)。...dispatchTouchEvent在进行事件分发时候,只有前一个action返回true,才会触发下一个action(也就是说dispatchTouchEvent返回true才会进行下一次action

    62720

    Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)「建议收藏」

    )),这个if大括弧括起来一段代码很重要,具体解释如下: 调用方法dispatchTransformedTouchEvent()将Touch事件传递给特定View。...那我们分情况继续分析一下: 161行if判断mFirstTouchTarget为null,也就是说Touch事件未被消费,即没有找到能够消费touch事件子组件或Touch事件拦截了,则调用ViewGroup...dispatchTransformedTouchEvent()方法处理Touch事件(和普通View一样),即子View没有消费Touch事件,那么子View上层ViewGroup才会调用其onTouchEvent...161行if判断mFirstTouchTarget不为null,也就是说找到了可以消费Touch事件View且后续Touch事件可以传递到该子View。...View这个方法,因为ViewGroup父类是View);child !

    35920

    Android事件分发机制源码解析

    根据文档注释,有任意一个按键、触屏或者轨迹球事件发生,栈顶ActivityonUserInteraction会被触发。...我们回到ActivitydispatchTouchEvent方法,注意getWindow().superDispatchTouchEvent(ev)这一语句返回false,即事件没有任何子View...); } } 所以我们在处理某些滑动冲突场景,可以从子View调用ViewrequestDisallowInterceptTouchEvent方法,阻止父View拦截事件。...return false; } 代码量不多,主要做了三件事: 若View设置了OnTouchListener,且处于enable状态,会先调用mOnTouchListeneronTouch...方法onTouch返回false,事件传递给onTouchEvent方法继续处理 若最后onTouchEvent也没有消费这个事件,将返回false,告知上层parent将事件给其他兄弟View 这样

    76930

    Carson带你学Android:手把手教你学会手势识别应用 GestureDetector

    用户轻触触摸屏,尚未松开或拖动 // 与onDown()区别:无松开 / 拖动 // 即:当用户点击,onDown()就会执行,在按下瞬间没有松开 / 拖动onShowPress...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener...用户轻触触摸屏,尚未松开或拖动 // 与onDown()区别:无松开 / 拖动 // 即:当用户点击,onDown()就会执行,在按下瞬间没有松开 / 拖动onShowPress...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener

    1.6K11

    Android 手势识别应用:手把手教你学会 GestureDetector(含实例讲解)

    用户轻触触摸屏,尚未松开或拖动 // 与onDown()区别:无松开 / 拖动 // 即:当用户点击,onDown()就会执行,在按下瞬间没有松开 / 拖动onShowPress...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener...用户轻触触摸屏,尚未松开或拖动 // 与onDown()区别:无松开 / 拖动 // 即:当用户点击,onDown()就会执行,在按下瞬间没有松开 / 拖动onShowPress...检测手势 - 重写ViewonTouch函数,将View触屏事件交给GestureDetector处理,从而对用户手势作出响应 View.setOnTouchListener(new View.OnTouchListener

    9.9K41

    Carson带你学Android:手把手带你深入分析事件分发机制!

    () * 调用场景:一个点击事件未被Activity下任何一个View接收/处理,就会调用方法 */ public boolean onTouchEvent(MotionEvent event...()返回了false,所以事件无消费,会继续往下传递,即调用View.onTouchEvent(); 调用View.onTouchEvent(),对于抬起View事件,在调用performClick...因为onTouch()返回了true,所以事件消费,不会继续往下传递,View.dispatchTouchEvent()直接返回true; 所以最终不会调用View.onTouchEvent(),也不会调用...这里需要特别注意是:Activity、View都无该方法ViewGroup特有。...等) dispatchTouchEvent()事件分发,只有前一个事件(如ACTION_DOWN)返回true,才会收到后一个事件(ACTION_MOVE和ACTION_UP) 即如果在执行ACTION_DOWN

    80910

    View事件分发

    如果某个view返回false,那么调用传递在它这里终止,后续事件也不会再传递给它。 实际上也只在传递down事件,ViewGroup才会采取一定规则来决定是否传递事件给child。...一个View处理多个触摸事件序列触摸点产生不同事件过程是: 用户第一个手指按下,产生ACTION_DOWN事件。 其它手指按下,触发ACTION_POINTER_DOWN。...收到ACTION_CANCEL,例如View移除、弹框、界面切换等引起View突然不可见。此时收到cancel事件,终止一次手势。...TouchTarget 一个触摸down事件某个child处理,ViewGroup使用一个TouchTarget对象来保存child和pointer对应关系。...一个触摸序列遵循down-move-up这样序列,但如果在down或者move之后,突然发生界面切换或者类似view移除,不可见等情况,那么此时触摸点不会收“正常”情况下up事件,取而代之是来自

    1.3K60

    限时分享Android面试中事件分发高级技巧

    事件处理:当事件到达目标View,该View调用自身事件处理方法(例如onTouchEvent)来处理事件,如果事件处理,则事件分发结束;如果事件未被处理,则事件会向上返回,由父View继续处理...一个View设置了OnTouchListener,它onTouch方法会在触摸事件发生首先调用。...没有设置 OnTouchListener,或者OnTouchListeneronTouch方法返回false,系统会调用ViewonTouchEvent方法来处理触摸事件。...当用户点击一个可点击View,并且onTouch()没有拦截,系统会调用ViewonClick方法来处理点击事件。...与触摸事件不同,点击事件不会影响触摸事件传递顺序,因此onClick方法触摸事件发生后调用。 所以,事件传递优先级是onTouch > onTouchEvent > onClick。

    16210

    Android高级进阶之路【二】十分钟彻底弄明白 View 事件分发机制

    () * 调用场景:一个点击事件未被Activity下任何一个View接收/处理,就会调用方法 */ public boolean onTouchEvent(MotionEvent event...点击空白区域,ViewGroup. dispatchTouchEvent()里遍历所有子View希望找到点击子View找不到,所以ViewGroup自身会处理该事件,于是执行onTouchEvent...()返回了false,所以事件无消费,会继续往下传递,即调用View.onTouchEvent(); 调用View.onTouchEvent(),对于抬起View事件,在调用performClick...[image.png] 这里需要特别注意是:Activity、View都无该方法ViewGroup特有。...等) dispatchTouchEvent()事件分发,只有前一个事件(如ACTION_DOWN)返回true,才会收到后一个事件(ACTION_MOVE和ACTION_UP) 即如果在执行ACTION_DOWN

    65330

    View 事件分发

    方法在onTouchEvent方法调用performClick获取,而onTouchListener方法优先于onTouchevent方法,所以onTouch优先于onClick方法执行 onTouch...方法返回值 控件是enabled,也就是说setEnabled(true)并且onTouch方法返回true,那么dispatchEvent就返回true,而onTouchEvent方法就不会执行 View...= null) { //这里调用了TouchDelegate类中onTouchEvent方法,该方法是dispatchEvent返回为true,才返回true,此时 onTouchEvent就返回true...()中调用了onClick方法,触发onClick监听 dispatchEvent事件分发,只有前一个action返回为true,后一个action才会触发 View事件分发面试问题 事件分发中...onTouch 和 onTouchEvent 有什么区别,该如何使用 这两个方法都是在 View dispatchTouchEvent 中调用,onTouch 优先于 onTouchEvent

    62910

    Android事件分发全面解析(基础篇)-夯实基础

    当用户触摸屏幕( View 或 ViewGroup 派生控件),将产生点击事件(Touch事件) Touch事件相关细节,比如触摸位置,时间,手势等等,会被封装成 MotionEvent 对象。...一个View 可以注册很多监听器吧,例如单击,长按,触摸事件(onTouch),并且View 本身也有 onTouchEvent 方法,那么问题来了,这么多事件相关方法应该由谁管理,所以View也会有这个...用一张搬运过来事件分发流程图来说明一下: 一个View需要处理事件,如果它设置了 OnTouchListener, 那么 OnTouchListener 中 onTouch 方法会被回调。...这时事件如何处理还要看 onTouch 返回值,如果返回false,则当前View onTouchEvent 方法会被调用;如果返回 true,那么 onTouchEvent 方法将不会被调用。...结论:一个事件 onInterceptTouchEvent 返回true 中途拦截,会传递 ACTION_CANCEL 给view onTouchEvent方法

    60620

    Android中单个View触摸事件分发机制

    方法如下 以TextView为例,给textview添加listener: setOnTouchListener:覆写父接口OnTouchListeneronTouch方法,触摸view时会触发该listener...,为该activity中控件触摸事件进行分发,分发意思也就是说,如果该方法返回true,当你对activity中view进行点击,长按,滑动等操作Log信息如下: <span style="font-size...默认<em>的</em>是返回<em>的</em>false 在此声明:<em>当</em>屏幕进行<em>触摸</em><em>时</em>首先是activity感受到该<em>触摸</em>事件,然后对事件进行分发处理,也就是说要不要传给activity中<em>的</em><em>view</em>进行处理。...可以看出,<em>当</em>activity<em>触摸</em><em>时</em> 首先进行dispatchTounchEvent进行事件<em>的</em>分发,分发到<em>view</em>后出发onTouchListener<em>的</em><em>onTouch</em><em>方法</em>,会有三个动作,如果是长按,则在ACTION_MOVE...了解到<em>触摸</em>事件处理逻辑后博文刚开始<em>的</em>问题就好解决多了 <em>当</em>点击<em>view</em><em>时</em>,只是执行onClick,而不执行onLongClick <em>当</em>长按<em>view</em><em>时</em> ,在手抬起之前执行onLongClick,在抬起之后会执行

    82620

    带你一起探究Android事件分发机制, 让面试提问不在畏惧!

    当用户触摸屏幕产生一系列事件,事件会由高到低,由外向内依次传递,最终把事件交到一个具体View手上处理,这个传递过程就叫做事件分发。...子View可以调用parent.requestDisallowInterceptTouchEvent(true)方法可以让父View没机会执行处理拦截逻辑,直接让父View开始传递事件。...dispatchTransformedTouchEvent()方法会根据child参数来做不同处理,View为null时调用ViewdispatchTouchEvent()传递事件,意味当前View...ACTION_POINTER_DOWN/ACTION_HOVER_MOVE这三种情况才会遍历查找符合条件View,所以TextView消费Down事件后,LinearLayout就认准他了,以后事件都会交给他处理...View认准子View(mFirstTouchTarget!=null),以后事件都会交给他处理,即使子View不可见和事件坐标超出子View范围。

    1.3K10

    Android下拉阻尼效果实现原理及简单实例

    用户可以下拉弹出那个视图,例如微信小程序列表,开发者只是将这个视图移出了父元素之外,所以不可见,我们暂且称之为隐藏头部,只有下拉到一定程度才会弹出,而主体,例如微信联系人列表,则是可见,布局见下图...这里我和灵感来源那篇博客一样,让自定义控件实现View.OnTouchListener接口,实现内部onTouch方法可以监听来自屏幕所有触摸操作。...当用户将隐藏头部下拉或上滑到一定高度,这个效果就会被触发,这需要依赖上面所述onTouch方法。...方法执行之后才会调用,所以我们可以在ActivityonCreate方法中利用findViewById获取实例,调用上面提到set方法进行参数初始化。...执行之后才会执行 * 因此可以在onCreate中调用set方法设置参数 */ @Override protected void onLayout(boolean changed, int l, int

    2.6K10
    领券