1. Android的View是一塊繪圖區(qū)域界轩。
2. ViewGroup是View的子類晦款,用來把下級的View分組;ViewGroup是各種Layout的父類惨篱。
3. 如果View1包含View2,我們則說View1是View2的Parent View,View2是View1的Chile View.
4. ViewGroup才有OnInterceptTouchEvent,對Down事件起個攔截的作用固翰,它的返回值為True,則Down事件由它自己的OnTouchEvent處理筒饰;返回值為False缴啡,Down事件傳給它的Child View.
5. 接第4步,如果Child View是ViewGroup,則根據(jù)第4步的規(guī)則執(zhí)行瓷们;如果不是业栅,則Down事件會直接傳給Child View的OnTouchEvent.
6.1 接第5步,如果Child View的OnTouchEvent返回True,則Down事件不會再傳遞谬晕;
6.2 接第5步碘裕,如果Child View的OnTouchEvent返回False,Down事件會傳給Child View 的Parent View的OnTouchEvent. Parent View的OnTouchEvent的返回值,決定了事件是否繼續(xù)向Parent View傳遞固蚤,規(guī)則同6.1和6.2
7.Up事件不會走Down事件的OnTouchEVent的傳遞過程娘汞,誰的OnTouchEvent最后處理了Down事件并返回了True(不再傳遞),誰就直接處理Up事件夕玩。所以你弦,如果Down事件傳遞到了最頂層的Parent View處理,而最頂層Parent View的OnTouchEvent返回的是False, 則你的程序?qū)G失Up事件燎孟!