2013-04-21 27 views
0

如何從視圖的兄弟姐妹中阻止onTouchEvent?我有一個ViewGroup和一個自定義按鈕。當按鈕收到一個OnTouchEvent時,我想阻止進一步的OnTouchEvents進入按鈕的兄弟。我想要繼續接收按鈕中的OnTouchEvent。防止同胞兄弟上的OnTouchEvent

+0

您的onTouchEvent()實現是否返回true(用於自定義按鈕)? – James 2013-04-21 20:25:25

+0

是的,它返回true,但不是在第一個事件。等待onLongClick通過後。這似乎很有效,因爲它允許父ViewPager只要馬上發生即可接收事件。 – 2013-04-21 20:54:36

+0

你可以看看:http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)。 – James 2013-04-21 21:02:40

回答

0

我想你也應該使用自定義ViewGroup。爲了得到你想要的,你應該重寫onInterceptTouchEvent()方法是什麼,好像說here

的onInterceptTouchEvent()方法給父母看 前的孩子做任何觸摸事件的機會。如果您從onInterceptTouchEvent()返回true,則以前處理 touch事件的子視圖將接收ACTION_CANCEL,並將該點 forward中的事件發送到父級的onTouchEvent()方法以處理通常的 處理。 onInterceptTouchEvent()也可以返回false,並在事件沿着視圖層次向下傳遞到它們通常的 目標,這些目標將使用它們自己的onTouchEvent()來處理事件時簡單地探測事件 。

基本上,根據你自己的邏輯(按鈕onTouchEvent,等等),你應該教導你的ViewGroup.onInterceptTouchEvent()如果MotionEvent原料COORDS沒有在您的按鈕的可見矩形包含返回true。

+0

我試過了。它阻止進一步事件到按鈕以及兄弟姐妹。這打破了我的按鈕! – 2013-04-21 21:46:38

+0

我要發佈一個不同的問題 - 我真正想要做的是防止兄弟姐妹在Drag上接受。我想我在看MotionEvents的錯誤方法。 – 2013-04-21 21:47:31