2012-11-06 94 views
1

我有一個對話窗口,其中包含ImageView。當我觸摸圖像Dialog被解僱時,但用戶仍在按屏幕。問題在於此觸摸事件未傳遞到我的Dialog(例如Activity)下面的窗口。在視圖之間傳遞MotionEvent

我能以某種方式通過這個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; 
} 

回答

0

onTouchEvent需要的方法返回一個布爾值。

從文檔

真要是事件已經被處理,否則爲false。

如果你有一個基礎層,你可能需要調用super(boolean)