android - Motion Event Action Move 在 android studio 模拟器中不起作用
问题描述
我的 android 模拟器有问题,我有一个自定义视图和用于控制我在课堂上使用 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。谢谢。
解决方案
视图需要return true
在第一个 ACTION_DOWN 事件上,然后才会收到连续的触摸事件。
super.onTouchEvent(event);
仅当您不想处理任何特定类型的触摸事件时才返回。
推荐阅读
- r - Julia 的包中是否有 rep() 函数?
- c# - 使用 C# 检索远程计算机的进程信息
- python - 后续 rolling_apply 已弃用
- node.js - 错误:存根无法调用 arg,因为它尚未被调用
- java - 创建组合两个但由一个统治的可观察对象
- ansible - 在字典列表上使用 Ansible with_dict 进行迭代
- c++ - c++ : && 是什么意思
- c# - SyntaxNode ReplaceNode 不替换节点
- excel - 将奇数行的单元格区域 BF 移动到偶数行的单元格区域 GK
- matlab - 如何在 Simulink 中实现函数以生成定义了宏函数的 C 代码?