Advertisement

Android NestedScrolling, NestedScrollingParent, NestedScrollingParentHelper解析(Android相关)

阅读量:
复制代码
      在这之前,我们知道Android对Touch事件的分发是有自己一套机制的。主要是有是三个函数:
    
    
      
    

dispatchTouchEvent、onInterceptTouchEvent以及onTouchEvent这三个方法。

该事件分发机制存在一个缺陷:

当子视图获得处理触摸事件的权限后,父视图将无法再对该触摸事件进行处理,直至用户再次按下手指。

复制代码
    事件分发是这样的:子View首先得到事件处理权,处理过程中,父View可以对其拦截,但是拦截了以后就无法再还给子View(本次手势内)。
    NestedScrolling机制是这样的:内部View在滚动的时候,首先将dx,dy交给NestedScrollingParent,NestedScrollingParent可对其进行部分消耗,剩余的部分还给内部View。
    
    
      
      
    

NestedScrolling 机制的核心关联对象为NestedScrollingParent,若需深入了解其原理,可查阅相关源代码:

复制代码
    public class NestedScrollView extends FrameLayout implements NestedScrollingPare

全部评论 (0)

还没有任何评论哟~