NestedScrolling机制(一)——概述](http://blog.csdn.net/al4fun/article/details/53888990)
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,所以是一样的。
网友评论