1

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 事件,这不是问题,但根据我所阅读的内容,我不理解行为。

4

0 回答 0