程序员Android技术知识Android开发

Andorid View的事件体系

2017-07-08  本文已影响0人  森林苍穹

1.View基础知识

1.1 View与ViewGroup的关系

1.2.MotionEvent和TouchSlop

1.3 VelocityTracker,�GestureDetector,Scroller

2.View的滑动

2.1使用scrollTo/scrollBy

2.2使用动画

View平移,或采用属性动画

2.3改变布局参数

如marginLeft

View的事件分发机制

当一个点击事件产生后,流程如下:
Activity->Window->顶级View->处理分发事件。
事件首先由Activity的dispatchTouchEvent进行派发,具体工作由Window来完成,Window会将事件传递给DecorView,DecorView是当前页面的底层容器(即setContentView所设置的View的父容器),然后由该顶级View处理分发。

如一个Activity的布局如下:


Activity布局

事件流程如下:

事件分发流程

重点:其事件传递的核心规则,可由下面的伪代码来表示:

public boolena dispatchTouchEvent(MotionEvent ev){
    boolena consume = false;
    if (onInterceptTouchEvent(ev)){
        consume = onTouchEvent(ev);
    }else{
        consume = child.dispatchTouchEvent(ev);
    }
    return consume; 
}

了解了伪代码的流程,也就了解了事件传递的流程

3.滑动冲突的解决方式:

参考:
《Android开发艺术探索》

上一篇 下一篇

猜你喜欢

热点阅读