Сглаживание AppBarLayout с NestedScrollView, используя AppBarLayout.Behavior

У меня есть AppBarLayout и NestedScrollView. Я хочу, чтобы NestedScrollView всегда прокручивался вниз, AppBarLayout также должен плавно расширяться, без остановки NestedScrollView перед тем, как AppBarLayout Expand; второй Полет / Свиток требуется, чтобы сделать это.

Я проверил stackoverflow и нашел, что это решение довольно связано и может быть использовано. Но вместо этого, если NestedScrollView, это RecyclerView. Он находится вhttps://stackoverflow.com/a/32454407/3286489

Я в основном взял код и немного его изменил, и использовал для проверки скорости> 8000, чтобы рассмотреть также Fling AppBarLayout как код ниже.

public final class FlingBehavior extends AppBarLayout.Behavior {
    private boolean isPositive;

    public FlingBehavior() {
    }

    public Fli,ngBehavior(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onNestedFling(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, float velocityX, float velocityY, boolean consumed) {
        if (velocityY > 0 && !isPositive || velocityY < 0 && isPositive) {
            velocityY = velocityY * -1;
        }

        if (target instanceof NestedScrollView && Math.abs(velocityY) > 8000) {
            consumed = false;
        }
        return super.onNestedFling(coordinatorLayout, child, target, velocityX, velocityY, consumed);
    }

    @Override
    public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dx, int dy, int[] consumed) {
        super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed);
        isPositive = dy > 0;
    }
}

Это работает, но не идеально. Я только хочу запустить (продолжить) Fling на AppBarLayout (т.е. вернутьconsumed = false), когда NestedScrollView достигнет вершины прокрутки. Как я могу проверить это в onNestedFling?

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос