我正在尝试在RecyclerView项内实现水平滚动。除了一个问题,一切都正常。当垂直RecyclerView s位于最高位置(包裹在SwipeRefreshLayout中)并且用户水平开始拖动时,然后向下移动手指时,它将开始SwipeToRefresh手势(小圆圈开始出现)。我已经尝试使用requestDisallowInterceptTouchEvent(true),就像它在here中所描述的那样,但这无济于事。所以我发现SwipeRefreshLayout不尊重requestDisallowInterceptTouchEvent()方法。如您所见,here会阻止ViewGroup的行为:

@Override
public void requestDisallowInterceptTouchEvent(boolean b) {
    // Nope.
}


是否可以将其更改为调用super.requestDisallowInterceptTouchEvent(b)?例如使用反射API?

附言它不是扩展区SwipeRefreshLayout和override方法那样简单,因为它位于第三部分库中。

最佳答案

您可以暂时禁用它。

mPullToRefreshLayout.setEnabled(false);

关于android - SwipeToRefresh不遵守Android中的requestDisallowInterceptTouchEvent(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30058898/

10-10 12:28