如何在RecyclerView.OnItemTouchListener的onInterceptTouchEvent中暂时设置RecyclerView的左右滑动无效,不切换子元素
时间: 2023-11-16 14:03:58 浏览: 35
您可以在 `RecyclerView.OnItemTouchListener` 的 `onInterceptTouchEvent` 方法中添加以下代码来暂时禁用RecyclerView的左右滑动:
```
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
switch (e.getAction()) {
case MotionEvent.ACTION_DOWN:
// 记录手指按下的横坐标
mDownX = e.getX();
break;
case MotionEvent.ACTION_MOVE:
// 计算手指移动的距离
float distanceX = e.getX() - mDownX;
if (Math.abs(distanceX) > mTouchSlop) {
// 如果手指移动的距离大于系统认为的最小滑动距离(mTouchSlop),则说明此次滑动为横向滑动
rv.requestDisallowInterceptTouchEvent(true); // 禁止RecyclerView拦截此次事件
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
// 手指抬起或取消时,允许RecyclerView拦截事件
rv.requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
```
在上面的代码中,我们记录了手指按下时的横坐标,并在手指移动时计算手指移动的距离。如果手指移动的距离大于系统认为的最小滑动距离(`mTouchSlop`),则说明此次滑动为横向滑动,我们就可以调用 `rv.requestDisallowInterceptTouchEvent(true)` 方法来禁止RecyclerView拦截此次事件。当手指抬起或取消时,我们允许RecyclerView拦截事件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)