2018-07-13 14:36:15 514浏览
嵌套滚动在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(); }
【关注微信公众号获取更多学习资料】