我有一個類延伸ViewGroup
,並希望從它得到每個MotionEvent
。到目前爲止,我有這樣的:追蹤ViewGroup中的MotionEvent
class TestViewGroup extends ViewGroup {
public TestViewGroup(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("TestViewGroup", "X: " + (int)event.getX() + " Y: " + (int)event.getY());
return true;
}
}
的onTouchEvent(MotionEvent event)
方法能夠捕捉MotionEvent
每次我把我的手指在屏幕上的時間。但是如果我在手指仍然下垂的時候將手指放在屏幕上,它將不會繼續跟蹤我手指的座標。我知道在延伸View
的課堂中,可以在手指在View
中移動時跟蹤手指。我只是想知道如何將相同的想法應用於ViewGroup
。
你知道,你是對的,它與View或ViewGroup無關,它實際上與我認爲如何整合它有關。我試圖將ViewGroup放入系統的WindowManager中,以便它可以在系統覆蓋層上保持不變(基本上顯示一個視圖,而不管頂部有什麼活動)。你知道是否將視圖添加到WindowManager會影響觸摸事件如何傳遞給它? – Brian
@AeroDroid ...聽起來像是一件有趣的事情,我會建議打開另一個問題並重新措詞,還要添加一些代碼。您可能還會嘗試使用@Override public boolean dispatchTouchEvent(MotionEvent event){}作爲替代方法,因爲它在獲取事件時似乎更健壯一些,但您需要添加一些代碼 – Idistic
其實剛纔我剛剛提出了一個新問題,這裏請看看它[這裏](http://stackoverflow.com/questions/6725636/getting-all-motionevents-with-windowmanager-layoutparams-flag-watch-outside-touch)。 – Brian