安卓触摸事件分发经验总结

安卓触摸事件分发总结

安卓时间分发对于自定义控件来说十分重要,很多事件如果不理解事件分发流程就会显得十分困惑,这里只说总结,源码里都能找到答案,暂时没时间看源码的可以省下时间。

1.父view事件拦截关注onInterceptTouchEvent(),requestDisallowInterceptTouchEvent()两个方法。
2.子VIew能接收事件的前提是调用子View的dispatchTouchEvent()要能返回true。
3.子View的调用流程是OnTouchListener到onTouchEvent,如果前者为null或者返回false,后者才会被调用,onClick和OnLongClick都在后者被调用。
4.父View如果不拦截down,只拦截move,子View是可以接受事件的状态,则收到的事件就会变成down—cancel,前提是父View要通过重写onInterceptTouchEvent()方法进行拦截。

你可能感兴趣的:(Android笔记)