在我应用程序的页面之一上,我一起使用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);
}
}
答案 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