LinearLayout layout = findViewById(R.id.your_layout_id);
layout.setOnTouchListener(new View.OnTouchListener() {
private float startX, startY, offsetX, offsetY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getRawX();
startY = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
offsetX = event.getRawX() - startX;
offsetY = event.getRawY() - startY;
// 判断是否滑动了整个布局
if (Math.abs(offsetX) > Math.abs(offsetY)) {
// 水平方向滑动
if (offsetX > 0) {
// 向右滑动
} else {
// 向左滑动
}
} else {
// 垂直方向滑动
if (offsetY > 0) {
// 向下滑动
} else {
// 向上滑动
}
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
break;
}
return true; // 返回true表示已消费事件,不再传递
}
});
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交