我试图在RecyclerView
项目中实现水平滚动。除了一个问题,一切都很顺利。当垂直RecyclerView
位于最顶部位置(它被包裹在SwipeRefreshLayout
中)并且用户水平地开始拖动然后向下移动手指时,它会启动SwipeToRefresh手势(小圆圈开始出现)。我尝试使用requestDisallowInterceptTouchEvent(true)
,就像here所描述的那样,但它没有帮助。所以我发现SwipeRefreshLayout
不尊重requestDisallowInterceptTouchEvent()
方法。您可以看到here阻止了ViewGroup
的行为:
@Override
public void requestDisallowInterceptTouchEvent(boolean b) {
// Nope.
}
是否可以将其更改为致电super.requestDisallowInterceptTouchEvent(b)
?例如,使用反射api?
P.S。它不是像SwipeRefreshLayout和覆盖方法那样简单,因为它在第三部分库内......
答案 0 :(得分:3)
您可以暂时禁用它。
mPullToRefreshLayout.setEnabled(false);