我有一个带ImageView
的对话窗口。当我触摸图像时Dialog
被取消,但用户仍然按下屏幕。问题是此触摸事件未传递到我的Dialog
下方的窗口(例如Activity
)。
我可以以某种方式将此MotionEvent
(ACTION_DOWN
}传递给Activity
,这样它仍然可以生成新的动作事件(ACTION_MOVE
和ACTION_UP
相应地)?
修改
我正在尝试在Activity
中完成的工作:
//Sending touch event
MotionEvent ev = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis()+100, MotionEvent.ACTION_DOWN, 50, 50, 0);
getWindow().getDecorView().dispatchTouchEvent(ev);
这是我的dispatchTouchEvent
和onTouchEvent
:
@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;
}
答案 0 :(得分:0)
方法onTouchEvent
需要返回一个布尔值。
来自文档
如果事件被处理则为真,否则为假。
如果你有底层,你可能需要调用super(boolean)