我无法弄清为什么在下面的代码中将手指移开而不接触时为什么未触发ACTION_UP事件。

public boolean onTouch(View v, MotionEvent event) {
        switch(event.getActionIndex()){
        case MotionEvent.ACTION_UP:
            Utils.log("Touch Up");
            break;
        case MotionEvent.ACTION_DOWN:
            Utils.log("Touch Down");
            break;
        }
        return true;
    }

最佳答案

您应该使用getActionMasked()


getAction()返回单个指针事件(不建议使用多个指针事件...)
getActionMasked()返回单个和多个指针事件(与getActionIndex()一起使用以确定哪个指针),
getActionIndex()仅返回指针索引。


因此,getActionIndex()返回执行向下/向上操作的手指(0、1、2等),而getAction()getActionMasked()返回所需的单指针事件(ACTION_DOWNACTION_UP等)

10-07 15:18