gpt4 book ai didi

android - 在 ScrollView 中使用 onOverScrolled

转载 作者:太空狗 更新时间:2023-10-29 16:19:04 26 4
gpt4 key购买 nike

ScrollView 中如何使用 onOverScrolled

protected void onOverScrolled (int scrollX, int scrollY, boolean clampedX, boolean clampedY)

clampedXclampedY bool 值会告诉我是否发生了过度滚动,但滚动值没有说明过度滚动的程度(它们始终为 0,或最大滚动).他们有什么意义?

此外,它一直被调用。我希望它仅在其中一个钳制值为真时被调用。

最佳答案

我将 ScrollView 子类化以提供更有用的 onOverScrolled。它看起来像这样:

public interface OnOverScrolledListener {
void onOverScrolled(android.widget.ScrollView scrollView,
int deltaX, int deltaY, boolean clampedX, boolean clampedY);
}

private OnOverScrolledListener mOnOverScrolledListener;

private int mOverScrollByDeltaX;
private int mOverScrollByDeltaY;

@Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
this.mOverScrollByDeltaX = deltaX;
this.mOverScrollByDeltaY = deltaY;
final boolean result = super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);
return result;
};

@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if (mOnOverScrolledListener != null && (clampedX || clampedY)) {
mOnOverScrolledListener.onOverScrolled(this, mOverScrollByDeltaX, mOverScrollByDeltaY, clampedX, clampedY);
}
}

public OnOverScrolledListener getOnOverScrolledListener() {
return mOnOverScrolledListener;
}

public void setOnOverScrolledListener(OnOverScrolledListener onOverScrolledListener) {
this.mOnOverScrolledListener = onOverScrolledListener;
}

关于android - 在 ScrollView 中使用 onOverScrolled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20146127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com