有没有办法检查 ViewPager 当前是否在页面之间滚动?

Is there a way to check whether ViewPager is currently scrolling between pages?

我将 ViewPager 与 onTouch 结合使用,因为应该可以同时滚动 ViewPager 和单击它。但是,我不希望两者都被触发,所以我正在寻找一种方便的方法来指示 OnTouch 忽略触发页面滚动的 MotionEvents。 我当然可以测量ACTION_DOWN和ACTION_UP之间的距离,但我想知道是否有现成的方法可以帮助我。

我找到的解决方案允许我识别是否有正在进行的滚动。 scrollState 在 ViewPager 中定义了三个值:SCROLL_STATE_IDLE、SCROLL_STATE_DRAGGING 和 SCROLL_STATE_SETTLING。现在我可以在 onTouch 方法中检查 scrollState 并采取相应的行动。

@Override
public void onPageScrollStateChanged(int state) {
    scrollState=state;
}