开启触控探索后,单指触控事件会转换为悬停事件。您可以通过将OnHoverListener添加到您的视图或覆盖View.onHoverEvent来观看这些事件。
一旦你拦截了这些事件,你通常可以将它们传递给你的正常触摸处理代码,并从悬停动作映射到触摸动作(如下所示)。
@Override
public boolean onHoverEvent(MotionEvent event) {
if (mAccessibilityManager.isTouchExplorationEnabled()) {
return onTouchEvent(event);
} else {
return super.onHoverEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_HOVER_ENTER:
return handleDown(event);
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_HOVER_MOVE:
return handleMove(event);
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_HOVER_EXIT:
return handleUp(event);
}
return false;
}