NestedScrolling解析

NestedScrolling机制(一)——概述](http://blog.csdn.net/al4fun/article/details/53888990)

NestedScrolling机制(二)——实例

NestedScrolling机制(三)——机制本质以及源码解析

NestedScrolling机制(四)——最后一个例子

补充

看完以上文章后不知以下方法中的第一个参数和第二个参数的区别,遂调试看了下两个对象,按照以上实例中的代码发现第一个和第二个参数是一样的对象(内存地址都一样),遍查看了下源码它们之间的区别。

public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes);

从NestedScrollingChildHelper这个帮助类的public boolean startNestedScroll(int axes)这个方法可以看到调用了
ViewParentCompat类中的方法

boolean onStartNestedScroll(ViewParent parent, View child, View target,int nestedScrollAxes);
这个方法中调用了

IMPL.onStartNestedScroll(parent, child, target, nestedScrollAxes);
而IMPL这个静态变量的初始化是根据系统版本进行初始化的,往下看可以看到

return parent.onStartNestedScroll(child, target, nestedScrollAxes);
这段代码中传递了child和target是在NestedScrollingChildHelper类的

public boolean startNestedScroll(int axes)中进行赋值的,赋值语句View child = mView;
mView即是初始化NestedScrollingChildHelper时传递的view,前面的例子中使用了self,所以是一样的。

你可能感兴趣的:(NestedScrolling解析)