如何從視圖的兄弟姐妹中阻止onTouchEvent?我有一個ViewGroup和一個自定義按鈕。當按鈕收到一個OnTouchEvent時,我想阻止進一步的OnTouchEvents進入按鈕的兄弟。我做想要繼續接收按鈕中的OnTouchEvent。防止同胞兄弟上的OnTouchEvent
回答
我想你也應該使用自定義ViewGroup
。爲了得到你想要的,你應該重寫onInterceptTouchEvent()
方法是什麼,好像說here:
的onInterceptTouchEvent()方法給父母看 前的孩子做任何觸摸事件的機會。如果您從onInterceptTouchEvent()返回true,則以前處理 touch事件的子視圖將接收ACTION_CANCEL,並將該點 forward中的事件發送到父級的onTouchEvent()方法以處理通常的 處理。 onInterceptTouchEvent()也可以返回false,並在事件沿着視圖層次向下傳遞到它們通常的 目標,這些目標將使用它們自己的onTouchEvent()來處理事件時簡單地探測事件 。
基本上,根據你自己的邏輯(按鈕onTouchEvent
,等等),你應該教導你的ViewGroup.onInterceptTouchEvent()
如果MotionEvent
原料COORDS沒有在您的按鈕的可見矩形包含返回true。
我試過了。它阻止進一步事件到按鈕以及兄弟姐妹。這打破了我的按鈕! – 2013-04-21 21:46:38
我要發佈一個不同的問題 - 我真正想要做的是防止兄弟姐妹在Drag上接受。我想我在看MotionEvents的錯誤方法。 – 2013-04-21 21:47:31
- 1. SlidingDrawer可以防止onTouchEvent
- 2. React.Js:在執行onClick時防止同級事件的兄弟姐妹
- 3. 如何防止浮動DIV從沒有延長兄弟姐妹
- 4. 如何防止scons清除父目錄和兄弟目錄?
- 5. 如何防止刷新兄弟狀態控制器?
- 6. jQuery事件;防止 「兄弟姐妹」,從觸發事件eachothers
- 7. C:等兄弟進程終止
- 8. 兄弟功能
- 9. 兄弟itemControllers
- 10. JQUERY兄弟
- 11. 兄弟姐妹
- 12. GWT:從兄弟
- 13. XPath:根據有雙胞胎的兄弟姐妹選擇孩子
- 14. 引用不同的兄弟節點
- 15. 如何防止浮動的div繼承他的兄弟姐妹的margin-top?
- 16. 父母的兄弟之上的元素
- 17. jQuery的下一個兄弟選擇器(「上一頁〜兄弟姐妹」)
- 18. 在父/兄弟/孩子上的jQuery removeClass
- 19. jQuery - 最近的上一個兄弟
- 20. 類名上的CSS兄弟選擇器?
- 21. XPath選擇兄弟父母爲根文檔的兄弟姐妹
- 22. DOMXPath得到兄弟依賴於前面的兄弟姐妹值
- 23. 轉換兄弟姐妹的高度:瞄準兄弟姐妹?
- 24. 如何防止在maven-assembly-plugin中指定兄弟模塊的版本?
- 25. 當隱藏/顯示兄弟文件時,防止居中的文本移動
- 26. 錯誤,同時啓動兄弟
- 27. 祖先同名兄弟姐妹
- 28. JQuery兄弟縮寫
- 29. XSLT計數兄弟
- 30. UIViewAutoresizing兄弟姐妹?
您的onTouchEvent()實現是否返回true(用於自定義按鈕)? – James 2013-04-21 20:25:25
是的,它返回true,但不是在第一個事件。等待onLongClick通過後。這似乎很有效,因爲它允許父ViewPager只要馬上發生即可接收事件。 – 2013-04-21 20:54:36
你可以看看:http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)。 – James 2013-04-21 21:02:40