我对 Android 还很陌生。我在启用对讲时处理触摸事件时遇到问题。
我正在 android 6 、galaxy S6 上进行测试:
首先:我已在设备上激活语音支持(设置\辅助功能\视觉\Talkback)。
第二个:在页面上,双击屏幕上的图标,它没有显示正确的坐标,似乎保留了之前的值:
这是我的代码的一部分,双击时 x 和 y 不会改变:
characterCircle.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
pinBlock.setLastPinDigit("");
int [] xLoc = characterCircle.getxLoc();
int [] yLoc = characterCircle.getyLoc();
String [] zValue = characterCircle.getzValue();
if(xLoc == null){
return false;
}
float x = event.getX();
float y = event.getY();
int boundaryX = characterCircle.getmRadius() / 13;
int boundaryY = characterCircle.getmRadius() / 13;
我尝试过 getRowX() 和 getRowY() ,但它们在我的情况下不起作用。因为我不想有与屏幕相关的位置..
请帮助我解决这个问题。
非常感谢
最佳答案
TalkBack 捕获触摸事件并将其转换为其他 AccessibilityEvent,后端可以根据操作系统版本以多种方式实现这些事件。在这些中,您都不应该依赖于单击/双击/任何触摸事件的位置。它可能是确定性的,但无论如何都不重要。您可以在一定程度上传递触摸手势,但仅限于与触摸相关的较长事件,例如滑动。特别是,依赖于自定义触摸监听器的控件的任何方面都可能被捕获触摸交互的 AT 完全破坏。
关于android - Android 中启用对讲时的 Ontouch 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43731825/