首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

View的事件分发及滑动冲突的解决

一、触摸事件的类型 ACTION_DOWN:用户手指按下操作,一个按下操作标志着一次触摸事件的开始 ACTION_UP:用户手指抬起操作,一次抬起标志着一次事件的结束 ACTION_MOVE:手指按下抬起前...,如果移动的距离超过一定的阈值,就会触发ACTION_MOVE 一次触摸事件,ACTION_DOWN和ACTION_UP是必须存在的,ACTION_MOVE视情况而定。...2021-03-30 18:07:14.960 23744-23744/com.ysl.dispatchstudy E/MyTextView: dispatchTouchEvent ACTION_UP...2021-03-30 18:07:14.960 23744-23744/com.ysl.dispatchstudy E/mTextView: OnTouch ACTION_UP 2021-03-30...事件都将默认交给父View去处理 c、原则上ACTION_UP也需要返回false,如果返回true,并且滑动事件交给子View处理,那么子View将接收不到ACTION_UP事件,子View的onClick

74140

Android 测试工具——Monkey事件与日志

该事件由一组Touch(ACTION_DOWN)和Touch(ACTION_UP)事件组成,在手机上看到实际操作类似于点击。...该事件是由一个ACTION_DOWN事件、一系列ACTION_MOVE事件和一个ACTION_UP事件组成的,在手机上看到的实际操作是一个没有拐弯的直线滑动操作。...从Monkey执行该事件对外输出的日志可以看到: 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的就是上、下、左、右四个方向按键。...从Monkey执行该事件对外输出的日志可以看到:[代码] 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的按键就是中间键和菜单键。...从Monkey执行该事件对外输出的日志可以看到:[代码] 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的就是上面说到的几个系统按键。

73910

Android 中屏幕点击事件的实现Android onTouchEvent, onClick及onLongClick的调用机制

onTouchEvent onTouchEvent中要处理的最经常使用的3个事件就是:ACTION_DOWN、ACTION_MOVE、ACTION_UP。...尽管大家天天都在用它们,可是有一点请留意,ACTION_DOWN事件作为起始事件,它的重要性是要超过ACTION_MOVE和ACTION_UP的,假设发生了ACTION_MOVE或者ACTION_UP,...及onTouchEvent的话,onTouchEvent是最先捕捉到ACTION_DOWN和ACTION_UP事件的,其次才可能触发onClick或者onLongClick。...能够看到,在保持按下的状态一定时间后会触发onLongClick,之后抬起手才会发生ACTION_UP。...onLongClick的发生是由单独的线程完毕的,而且在ACTION_UP之前,而onClick的发生是在ACTION_UP后,因此同一次用户touch操作就有可能既发生onLongClick又发生onClick

3K30

Android事件分发原理分析

image.png MotionEvent.ACTION_UP的传递 上面提到,一个单点完整的触摸动作是从ACTION_DOWN开始,并以ACTION_UP或者ACTION_CANCEL结束的,ACTION_UP...是在ACTION_DOWN已经发生的情况下再去基于当前View的一些特性,例如是否可点击,事件是否被消费来决定ACTION_UP是否能不能到达一些控件的,ACTION_UP依然也是从Activity的dispatchTouchEvent...方法开始往下逐层传递,这边可通过对比Button和TextView对于ACTION_UP的不同处理作比较: Button与TextView对于ACTION_UP的区别,Buton是可点击的isClickable...= null,所以会通过mFirstTouchTarget.child来把ACTION_UP继续分发给子View,前提当然是当前这个ViewGroup满足事件分发条件,例如事件未被拦截,这样ACTION_UP...一样,无法收到ACTION_UP事件,下面来搞一个Demo,Demo地址:https://github.com/liuhongda/TouchEventDemo,Activity布局文件: <?

1.1K30

Appium+python自动化(十八)- 你难道是猴哥失散多年的混血弟弟还是妹妹???- Monkey事件(超详解)

该事件由一组Touch(ACTION_DOWN)和Touch(ACTION_UP)事件组成,在手机上看到实际操作类似于点击。...该事件是由一个ACTION_DOWN事件、一系列ACTION_MOVE事件和一个ACTION_UP事件组成的,在手机上看到的实际操作是一个没有拐弯的直线滑动操作。...从Monkey执行该事件对外输出的日志可以看到: 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的就是上、下、左、右四个方向按键。...从Monkey执行该事件对外输出的日志可以看到: [代码] 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的按键就是中间键和菜单键。...从Monkey执行该事件对外输出的日志可以看到: [代码] 该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的就是上面说到的几个系统按键。

74630

笔记——事件分发机制(四)

4.dispatchTouchEvent()与onInterceptTouchEvent()依据上图情况可以得到相似结果,只要是ACTION_DOWN都没有接收到事件后面的ACTION_MOVE、ACTION_UP...但是要是ACTION_DOWN都没有接收到事件,后面的ACTION_MOVE、ACTION_UP事件序列就也不能接收到。 ? ViewGroup A.png ?...ACTION_UP事件,这里必须要返回false,假设事件交由子元素处理,如果父容器在ACTION_UP时返回了true,就会导致子元素无法接收到ACTION_UP事件,这个时候子元素中的onClick...事件就无法触发,但是父容器比较特殊,一旦它开始拦截任何一个事件,那么后续的事件都会交给它来处理,而ACTION_UP作为最后一个事件也必定可以传递给父容器,即便父容器的onInterceptTouchEvent...方法在ACTION_UP时返回了false。

69740

Android触摸事件传递(下)

但是我们仔细想来,好像还有点问题,就是我们一个按钮点击的动作,至少应该包含了ACTION_DOWN,ACTION_UP,二个触摸事件,但是我们打印的日志,显然只是一个触摸事件,那这是为什么呢?    ...我们也很好读懂,如果事件是ACTION_UP或者ACTION_CANCEL,表示触摸结束,但是还有第三种是 如果触摸事件是ACTION_DOWN 并且result==false,同样停止嵌套的触摸事件传递...,即后面的ACTION_MOVE,ACTION_UP都不会触发,因为在我们上面的例子中,没有消费触摸事件,返回的都是false,所以只触发了ACTION_DOWN事件。...我们看到,这里一次按钮点击触发了4个事件,分别是ACTION_DOWN,ACTION_MOVE,ACTION_MOVE,ACTION_UP,同时所有事件全部被btn3消费掉了,这就验证了我们上面的结论,

98610

android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」

最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到ACTION_MOVE和ACTION_UP,我决定下决心写个测试的小程序,来研究一个触摸事件从上往下是怎么传递和处理的...ACTION_DOWN事件的判断和处理,直接影响到了后续的ACTION_MOVE和ACTION_UP,在上面的图中,FrameLayout的onTouchEvent返回了true,那么当ACTION_MOVE...如果说一个ACTION_DOWN从头到尾都是返回false,那么后续的ACTION_MOVE和ACTION_UP就没法被感知到了。...ACTION_POINTER_DOWN,第三个或者更多手指按下的时候,也是ACTION_POINTER_DOWN,如果此时有一个手指离开屏幕,会产生ACTION_POINTER_UP,当最后一个手指离开屏幕的时候,才会产生ACTION_UP

47920

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券