【问题标题】:Is there a way to check whether ViewPager is currently scrolling between pages?有没有办法检查 ViewPager 当前是否在页面之间滚动?
【发布时间】:2016-03-21 01:43:21
【问题描述】:

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

【问题讨论】:

  • 对不起,我有点困惑。你是说当ViewPager滚动时,你只想触发你的onTouch事件而忽略ViewPager回调对于onPageChangeListener 和/或onClick ?
  • 我一直在寻找一种方法来区分导致滚动的触摸事件和没有滚动的触摸事件。我有一种方法(基于 onTouch),仅适用于后一种情况。最终,我决定评估自己的 touchEvent,以识别非滑动触摸。

标签: android android-viewpager ontouch


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多