mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
public float y1, y2, x2, x1;
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
x1 = e.getX();
y1 = e.getY();
}
if (e.getAction() == MotionEvent.ACTION_MOVE) {
x1 = e.getX();
y1 = e.getY();
}
if (e.getAction() == MotionEvent.ACTION_UP) {
x2 = e.getX();
y2 = e.getY();
if (Math.abs(x1 - x2) < 6) {
return false;// 距离较小,当作click事件来处理
}
if (Math.abs(x1 - x2) > 6) { // 真正的onTouch事件
return true;
}
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
解决recyclerview滑动被当作点击事件的问题
最新推荐文章于 2022-06-30 14:31:50 发布