recyclerView 一根手指在滑动,按下另一根手指, 滑动停止并无法恢复
时间: 2023-06-16 14:05:00 浏览: 42
这种情况可能是因为你在滑动时按下了第二个手指,导致 `RecyclerView` 停止滑动并且无法恢复。这是因为 `RecyclerView` 默认情况下只能处理一个手指的滑动操作,如果有第二个手指按下,就会被认为是多点触控,导致滑动停止。
如果你希望在多点触控时仍然能够正常滑动 `RecyclerView`,可以通过设置 `RecyclerView` 的 `setOnTouchListener` 方法来实现。
具体来说,你需要在 `OnTouchListener` 中处理多点触控的情况,例如判断第二个手指是否按下,并在需要时手动处理滑动事件。以下是示例代码:
```java
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getPointerCount() > 1) {
// 多点触控,手动处理滑动事件
switch (event.getActionMasked()) {
case MotionEvent.ACTION_POINTER_DOWN:
// 第二个手指按下,记录当前位置
// 可以记录当前 RecyclerView 的滚动位置
break;
case MotionEvent.ACTION_MOVE:
// 处理滑动事件
// 可以根据当前位置和记录的位置计算滑动距离,并手动调用 RecyclerView 的滚动方法
break;
case MotionEvent.ACTION_POINTER_UP:
// 第二个手指抬起,清空记录
break;
}
return true;
}
return false;
}
});
```
需要注意的是,这种方式可能需要你自己手动计算滑动距离,并手动调用 `RecyclerView` 的滚动方法。同时,也需要处理多点触控的其他情况,例如多个手指同时按下等。