我的 Android 模拟器有问题,我有一个自定义 View ,为了控制触摸事件,我在类中使用 onTochEvent。因此,对于不同类型的事件(例如:向下、向上、移动......),我已经纠正了一个案例。对于向下和向上,模拟器显示没有问题,但对于移动,没有任何操作。在我的手机上,一切都很好!我也尝试过不同类型的 API,但没有成功。这是我的 onTouch 代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean result = super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
xd = event.getX();
yd = event.getY();
break;
case MotionEvent.ACTION_MOVE:
float xm = event.getX();
float ym = event.getY();
if(card.left < xm && card.right > xm){
if(card.top < ym && card.bottom > ym){
card.top += yd - ym;
card.left += xd - xm;
card.right += xd - xm;
card.bottom += yd - ym;
postInvalidate();
}
}
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_CANCEL:
break;
case MotionEvent.ACTION_OUTSIDE:
break;
default:
}
return result;
}
android studio 3.3 api 24。谢谢。
最佳答案
View 需要在第一个 ACTION_DOWN 事件上返回 true
,只有这样它才会收到连续的触摸事件。
仅当您不想处理任何特定类型的触摸事件时才返回super.onTouchEvent(event);
。
关于android - 运动事件 Action 移动在 android studio 模拟器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54409763/