码迷,mamicode.com
首页 > 移动开发 > 详细

Android 滑动冲突以及如何解决

时间:2018-05-08 00:51:49      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:多层嵌套   消息分发机制   执行   滑动方向   应该   触摸事件   style   ros   isp   

首先要理解事件分发机制。

 

关于事件分发机制,ViewGroup的事件分发,有3个关键方法 dispatherTouchEvent,onInterceptTouchEvent,onTouchEvent。

分发,拦截,执行。

 

滑动冲突的产生,主要是因为 ,存在有多层嵌套的可滑动viewGroup,那么如果真的到了这种场景,到底应该如何响应呢?应该响应哪一层的滑动事件呢?

多层嵌套的可滑动ViewGroup,三种情况(两层嵌套内外可滑动方向一致,两层嵌套内外可滑动方向不一致,内外嵌套超过3层含3层),照理说,如果不做任何处理,程序应该会默认响应所有的滑动事件,但是事实上,这种默认的处理方式往往不是我们想要的结果。

那么,如何解决滑动冲突呢?

方法1)onInterceptorTouchEvent 外部拦截, 知道消息分发机制的人应该熟悉这个方法,它是用来拦截从外发送到内的触摸事件的,如果返回值是true,就不会往下下发消息。确保只有外层响应滑动事件,从而解决冲突。

方法2)dispathTouchEvent 内部拦截

 

实际的案例,后面填补。

 

Android 滑动冲突以及如何解决

标签:多层嵌套   消息分发机制   执行   滑动方向   应该   触摸事件   style   ros   isp   

原文地址:https://www.cnblogs.com/hankzhouAndroid/p/9005977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!