学习NestedScrolling(一)

个人理解有限,有不对的地方希望大家指正。

NestedScrollingParent

一、包括的方法:

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

          public void  onNestedScrollAccepted(View child,View target, int nestedScrollAxes);

          public void  onStopNestedScroll(View target);

          public void  onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed);

          public void  onNestedPreScroll(View target, int dx, int dy, int[] consumed);

          public boolean  onNestedFling(View target, float velocityX, float velocityY, boolean consumed);

          public boolean  onNestedPreFling(View target, float velocityX, float velocityY);

          public int  getNestedScrollAxes();


1.对入参 View child的理解:它是实现NestedScrollingParent的父类ViewGroup中最外层实现NestedScrollingChild的子View


2.对fling的理解:就是当滑动控件,手指离开屏幕后,惯性的滑动

3.dx: 实现NestedScrollingParent的父类横向滑动的偏移量

4.dy: 实现NestedScrollingParent的父类纵向滑动的偏移量

5.int[] consumed 通知NestedScrollingChild消耗的多少偏移量

6.dxConsumed:target View横向消耗的偏移量

7.dyConsumed:target View纵向消耗的偏移量

8.dxUnconsumed:target View横向未消耗的偏移量

9.dyUnconsumed:target View纵向未消耗的偏移量


二、各方法调用的时机

1.当滑动屏幕的时候先调用 onStartNestedScroll();

2.如果onStartNestedScroll()返回true ,接着会调用 onNestedScrollAccepted();

3.滑动屏幕时,如果最父类布局拦截滑动事件,会调用onNestedPreScroll()

4.如果targetView开始滑动,会开始调用onNestedScroll();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容