22
我正在實現一個自定義TextView
,我想在觸摸視圖時執行一些操作。我認爲onTouchEvent
方法會讓我在視圖上觸及全部範圍,而不必使用setOnTouchListener
(我試圖在視圖中完成所有工作,而不是在活動中,因此它是可移植的),但唯一的觸摸事件已註冊是ACTION_DOWN
。如果我在使用此設置的活動中設置了OnTouchListener
,我可以獲得全部觸摸事件,但onTouchEvent
不會。View.onTouchEvent只註冊ACTION_DOWN事件
任何人都知道爲什麼會出現這種情況,或者任何人都可以爲我提供一個不涉及使用setOnTouchListener
(這會阻止實現活動設置自己的偵聽器)的解決方案?
如果我這樣做,那麼從該活動應用的任何觸摸/點擊偵聽器都不會被觸發。我不想禁用功能。我只是想在發送之前攔截任何接觸,但仍然發送它們。調用'dispatchTouchEvent'只是再次調用'onTouchEvent',導致堆棧溢出(lol)。 –
如果您處於ViewGroup容器中,則可以重寫onInterceptTouchEvent()以監視派發給您的孩子的觸摸事件。除此之外(或直接連接到dispatchTouchEvent - 不推薦),你不能做你想做的事。 MotionEvent派發基於通過第一個收件人查找目標,該收件人返回true,然後將所有以下事件分派給該目標。 – hackbod
夠公平的。我想我需要知道的是如何在自定義視圖上有一個觸摸監聽器,它不禁止實現類擁有自己的全功能觸摸監聽器,但是您肯定在標題中回答了問題。 –