1

我有一个带有ImageView. 当我触摸图像时,图像Dialog被关闭,但用户仍在按下屏幕。问题是这个触摸事件没有传递到我下面的窗口Dialog(例如一个Activity)。

我可以以某种方式将它MotionEvent(使用ACTION_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;
}
4

1 回答 1

0

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

从文档

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

如果你有一个底层,你可能不得不调用 super(boolean)

于 2012-11-06T14:27:42.680 回答