在视图之间传递MotionEvent

时间:2012-11-06 14:13:31

标签: android

我有一个带ImageView的对话窗口。当我触摸图像时Dialog被取消,但用户仍然按下屏幕。问题是此触摸事件未传递到我的Dialog下方的窗口(例如Activity)。

我可以以某种方式将此MotionEventACTION_DOWN}传递给Activity,这样它仍然可以生成新的动作事件(ACTION_MOVEACTION_UP相应地)?

修改

我正在尝试在Activity中完成的工作:

//Sending touch event
MotionEvent ev = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis()+100, MotionEvent.ACTION_DOWN, 50, 50, 0);
getWindow().getDecorView().dispatchTouchEvent(ev);

这是我的dispatchTouchEventonTouchEvent

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if(mDragging) {
        mMainFrame.onTouchEvent(ev); //I'm passing event to some view
        onTouchEvent(ev); //and then to my Activity
        return true;
    }

    return super.dispatchTouchEvent(ev);
}

public boolean onTouchEvent(MotionEvent ev) {
    return true;
}

1 个答案:

答案 0 :(得分:0)

方法onTouchEvent需要返回一个布尔值。

来自文档

如果事件被处理则为真,否则为假。

如果你有底层,你可能需要调用super(boolean)