2018-07-13 14:36:15 570浏览
嵌套滚动在android操作中是google为我们提供一种新特性。从某种角度看可以理解为嵌套滚动是逆向的事件传递机制,接下来扣丁学堂小编就给大家讲讲详细的操作方法及其原理,感兴趣的小伙伴赶紧来围观吧。
publicinterfaceNestedScrollingChild{
/**
*设置是否启用嵌套滚动
*/
publicvoidsetNestedScrollingEnabled(booleanenabled);
/**
*判断是否启用嵌套滚动
*/
publicbooleanisNestedScrollingEnabled();
/**
*开始嵌套滚动
*@paramaxes标识方向,有x,y方形和默认值0
*/
publicbooleanstartNestedScroll(intaxes);
/**
*嵌套滚动结束
*/
publicvoidstopNestedScroll();
/**
*判断父view是否支持嵌套滚动
*/
publicbooleanhasNestedScrollingParent();
/**
*分发嵌套滚动,一般再onTouch/onInterceptTouchEvent/dispatchTouchEvent中调用
*@paramdxConsumedx轴滚动的距离
*@paramdyConsumedy轴滚动的距离
*@paramdxUnconsumedx轴上未消费的距离
*@paramdyUnconsumedy轴上未消费的距离
*@paramoffsetInWindow子View的窗体偏移
*/
publicbooleandispatchNestedScroll(intdxConsumed,intdyConsumed,
intdxUnconsumed,intdyUnconsumed,int[]offsetInWindow);
/**
*滚动之前调用,进行分发预滚动事件
*/
publicbooleandispatchNestedPreScroll(intdx,intdy,int[]consumed,int[]offsetInWindow);
/**
*滑动时调用,分发滑动事件
*/
publicbooleandispatchNestedFling(floatvelocityX,floatvelocityY,booleanconsumed);
/**
*滚动之前调用,分发预滚动事件
*/
publicbooleandispatchNestedPreFling(floatvelocityX,floatvelocityY);
}
NestedScrollingParent接口中的方法均是与NestedScrollingChild中的方法一一对应的:
publicinterfaceNestedScrollingParent{
publicbooleanonStartNestedScroll(Viewchild,Viewtarget,intnestedScrollAxes);
publicvoidonNestedScrollAccepted(Viewchild,Viewtarget,intnestedScrollAxes);
publicvoidonStopNestedScroll(Viewtarget);
publicvoidonNestedScroll(Viewtarget,intdxConsumed,intdyConsumed,
intdxUnconsumed,intdyUnconsumed);
publicvoidonNestedPreScroll(Viewtarget,intdx,intdy,int[]consumed);
publicbooleanonNestedFling(Viewtarget,floatvelocityX,
floatvelocityY,booleanconsumed);
publicbooleanonNestedPreFling(Viewtarget,floatvelocityX,floatvelocityY);
publicintgetNestedScrollAxes();
}
【关注微信公众号获取更多学习资料】