NestedScroll上的协调器行为

时间:2017-07-22 08:06:20

标签: android android-coordinatorlayout

我正试图在nestedscrollview上实现弹性过度滚动,以实际执行类似于当列表过度滚动时缩放appbarlayout的内容,以及当用户抬起手指时滚动视图应该反弹。

我在nestedscrollview上的行为位于

之下
mb_substr

我的活动xml是:

 public class Behaviour extends 
    CoordinatorLayout.Behavior<NestedScrollView> {
        private int totaloffset;

        public Behaviour(Context context, AttributeSet attrs) {

        }

        @Override
        public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull NestedScrollView child, @NonNull View directTargetChild, @NonNull View target, int axes, int type) {
            return true;
        }

        @Override
        public void onNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull NestedScrollView child, @NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) {
            if (dyUnconsumed < 0) {
                child.offsetTopAndBottom(-dyUnconsumed);
                totaloffset = totaloffset + dyUnconsumed;
            }
        }

        @Override
        public void onStopNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull NestedScrollView child, @NonNull View target, int type) {
            super.onStopNestedScroll(coordinatorLayout, child, target, type);
        }

问题是我不知道如何用手指抬起来反弹回来。我试过ontouchevent,但要么停止正常的滚动行为或给出一些其他奇怪的结果。我可以通过简单地设置总偏移量来轻松地将其反弹回来。但我不知道在哪里写代码。

我也尝试在onStopscroll中实现它,但是当列表不滚动时调用它,即使用户没有抬起他的手指

0 个答案:

没有答案