我OnTouchListener
在 Android 5.1 中实现了一个禁用触摸输入并且只允许手写笔输入(或触摸以外的任何其他输入)的方式,方法如下:
View.OnTouchListener touchListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if ((event.getToolType(0) == MotionEvent.TOOL_TYPE_FINGER)) {
// Touch input
return true;
} else {
return false;
}
}
};
这很好用。返回 true 不会将触摸事件传递给底层活动,这就是我想要的。
根据我所阅读的内容,返回 false 是将事件传递给底层活动,但只应处理 ACTION_DOWN 并且不应再处理 ACTION_MOVE 和 ACTION_UP(因为返回 false 时,链在 ACTION_DOWN 之后以某种方式停止)。在我的情况下,尽管我返回 false,但仍然由 OnTouchListener 调用和处理 ACTION_MOVE 和 ACTION_UP。
为什么会这样?我还想拥有 ACTION_UP 和 ACTION_MOVE 事件,这不是问题,但根据我所阅读的内容,我不理解行为。