onInterceptTouchEvent和onTouchEvent调用时序

<?xml version="1.0" encoding="utf-8"?>

<LayoutView 1  >

      <LayoutView 2  >

          <MyTextView 3 />

      </LayoutView2>

</LayoutView1>


1.       down事件首先会传递到(父VIEW 1)onInterceptTouchEvent()方法

2.       如果该View 1 onInterceptTouchEvent()在接收到down事件处理完成之后return false,那么后续的move, up等事件将继续会先传递给该View 1 ,之后才和down事件一样传递给最终的目标view(子VIEW)onTouchEvent()处理。

3.       如果 1 onInterceptTouchEvent()在接收到down事件处理完成之后return true,那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样传递给 1 onTouchEvent()处理,注意,目标view(子VIEW)将接收不到任何事件。

4.       如果最终需要处理事件的view 3 onTouchEvent()返回了false,那么该事件将被传递至其父VIEW 2 onTouchEvent()处理。

5.       如果最终需要处理事件的view onTouchEvent()返回了true,那么后续事件将可以继续传递给该viewonTouchEvent()处理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章