JS技术

CoordinatorLayout高级用法-自定义Behavior - Loaders Blog - 博客频道 - CS(2)

字号+ 作者:H5之家 来源:H5之家 2015-12-14 18:01 我要评论( )

和你想的一样,我们覆写了onStartNestedScroll和onNestedPreScroll方法,但是除了这两个方法外,我们还覆写了onNestedPreFling方法,这个方法是干嘛的? 估计大家已经猜出来了,这里是处理fling动作的,你想想,我

和你想的一样,我们覆写了onStartNestedScroll和onNestedPreScroll方法,但是除了这两个方法外,我们还覆写了onNestedPreFling方法,这个方法是干嘛的? 估计大家已经猜出来了,这里是处理fling动作的,你想想,我们在滑动松开手的时候,ScrollView是不是还继续滑动一会,那我们也需要让跟随的那个ScrollView也要继续滑动一会,这种效果,onNestedPreFling就派上用场了。

好,接下来我们来实现代码,首先来看看onStartNestedScroll,这里的返回值表明这次滑动我们要不要关心,我们要关心什么样的滑动?当然是y轴方向上的。

(CoordinatorLayout coordinatorLayout, View child, View directTargetChild, View target, int nestedScrollAxes) { return (nestedScrollAxes & ViewCompat.SCROLL_AXIS_VERTICAL) != 0; }

现在我们准备好了关心的滑动事件了,那如何让它滑动起来呢?还是要看onNestedPreScroll的实现

(CoordinatorLayout coordinatorLayout, View child, View target, int dx, int dy, int[] consumed) { super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed); int leftScrolled = target.getScrollY(); child.setScrollY(leftScrolled); }

也很简单,让child的scrollY的值等于目标的scrollY的值就ok啦,那fling呢?更简单,

(CoordinatorLayout coordinatorLayout, View child, View target, float velocityX, float velocityY, boolean consumed) { ((NestedScrollView) child).fling((int)velocityY); return true; }

直接将现在的y轴上的速度传递传递给child,让他fling起来就ok了。
定义好了Behavior,就得在xml中使用了,使用方法和前面的一样。

==="true" android:orientation="vertical"> <android.support.v4.widget.NestedScrollView ="#FF00FF00" android:layout_height="match_parent"> <LinearLayout ="vertical"> <TextView =="@android:color/white" android:text="contentLeft"/> <TextView =="@android:color/white" android:text="contentLeft"/> <TextView =="@android:color/white" android:text="contentLeft"/> <TextView =="@android:color/white" android:text="contentLeft"/> <TextView =="@android:color/white" android:text="contentLeft"/> <TextView ==> </android.support.v4.widget.NestedScrollView> <android.support.v4.widget.NestedScrollView =="org.loader.mybeha

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android:interpolator用法 - zcljy0318的专栏 - 博客频道 - CSDN.NET zclj

    Android:interpolator用法 - zcljy0318的专栏 - 博客频道 - CSDN.NET

    2015-12-14 16:02

  • JScript中正则表达式用法详解(附例子:JScript做语法加亮显示) _javascript教程教程

    JScript中正则表达式用法详解(附例子:JScript做语法加亮显示) _java

    2015-10-08 13:13

  • 总结showModalDialog和showModelessDialog用法_javascript教程教程

    总结showModalDialog和showModelessDialog用法_javascript教程教程

    2015-10-07 15:24

  • 一组常用的弹出窗口用法总结_javascript教程教程

    一组常用的弹出窗口用法总结_javascript教程教程

    2015-10-07 10:08

网友点评
p