Android      Android使用LayoutParams属性进行左右侧滑动画时的事件转发   
文章目录  [隐藏]

书接前文  《Android使用LayoutParams属性进行左右侧滑动画》
其中使用的是onTouchEvent的重写,虽然示例看起来不错,但将其中button换为ListView时就不尽人意了,父子间事件有冲突

本例重写dispatchTouchEvent,这是交互事件首先被处理的方法。
容器类View的事件传递:dispatchTouchEvent -> onInterceptTouchEvent -> onTouchEvent
控件类View的事件传递:dispatchTouchEvent -> onTouchEvent

手指按下

首先记录按下的位置


手指滑动

手指滑动的过程不断的执行ACTION_MOVE事件。当第一个MOVE事件执行时,根据手指在y轴和x轴上滑动距离的大小确定属于上下滑动还是左右滑动。
如果是上下滑动,和侧滑动画无关,下发事件的处理;否则作为侧滑动画处理并拦截。
同时处理的还有初始左右滑继而上下滑的事件。


手指拿起

手指拿起时应该判断是不是“点击”事件,也就是从按下到拿起手指的移动距离x、y都不足以触发滑动事件。这种情况也不足以侧滑,所以下发即可。

提供项目包:注意为了上传方便android-support-v4.jar删除了,导入后记得替换。同时重写build project。
[download id="1687"]
 

承接App定制、企业web站点、办公系统软件 设计开发,外包项目,毕设