SwipeRefresh +向右/向左滑动ViewPager

时间:2018-09-06 07:44:15

标签: android

在我应用程序的页面之一上,我一起使用SwipeRefresh,scrollView和ViewPager。这意味着它几乎可以在任何方向上“拖延”。

这引起了一些互动问题。

一切正常,但是方向的微小变化(例如向左滑动以打开ViewPager中的下一个片段)会使它“放下”幻灯片,而是开始swipeRefresh。

因此,要获得完美的viewPager幻灯片,您的手指需要成90度的完美角度,并且需要一直保持到幻灯片的整个方向。

所以这个问题:

是否有办法知道用户是否在viewPager中向左滑动,然后停止在发生这种情况时触发swipeRefresh的可能性?

编辑:

通过使用addOnPageChangeListener固定到viewPager。 Max Aves在答案中建议。

我是这样做的:

viewPager.addOnPageChangeListener(this);

@Override
public void onPageScrollStateChanged(int state) {
    if(state == 0){
       swipeRefreshLayout.setEnabled(true);
    }else{
       swipeRefreshLayout.setEnabled(false);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用ViewPager滚动侦听器: https://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener

因此您可以检查是否使用了Viewpager滚动条。因此,在OnPageChangeListener内部,您可以使用其他手势的标志进行操作。

  

请注意OnPageChangeListener可以接收下一个事件:   SCROLL_STATE_IDLE   SCROLL_STATE_DRAGGING
  SCROLL_STATE_SETTLING