我使用NestedScrollView
时遇到了一些问题。我的用例使用2 NestedScrollView
,父母和孩子。我已经覆盖了父的onNestedPreScroll
方法,有时会在子节点之前使用滚动像素:
@Override
public void onNestedPreScroll(View target, int dx, int dy, int[] consumed) {
if (dy > 0 && getScrollY() < getScrollRange()) {
int oldScrollY = getScrollY();
scrollBy(0, dy);
consumed[1] = getScrollY() - oldScrollY;
}
}
我还覆盖了父母的onNestedPreFling
,以便在孩子面前消磨:
@Override
public boolean onNestedPreFling(View target, float velocityX, float velocityY) {
if (velocityY > 0 && getScrollY() < getScrollRange()) {
fling((int) velocityY);
return true;
}
return false;
}
但是,我注意到当父母在onNestedPreScroll
中使用了整个滚动时,父母的onNestedPreFling
未被调用。
从我的调查中看来,如果父母使用整个卷轴,则孩子会做出反应,好像发生了ACTION_MOVE
deltaY=0
事件。这会导致绝对值deltaY
小于mTouchSlop
,mIsBeingDragged
仍将设置为false
。由于mTouchSlop
为false
,因此当儿童发生ACTION_UP
事件时,不会进行任何计算。
我可以使用不同的方法来获得父NestedScrollView
的fling速度吗?
NestedScrollView
:https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html