В моем приложении мне нужно заставить его реагировать определенным образом, если оно быстро и быстро нажимается в любом месте дважды, за исключением таких компонентов, как кнопка или текстовое представление.
Я могуЗахватите его в любом месте, кроме следующей ситуации:
Если отображается заказное AlertDialog
, если я нажимаю описанным способом в месте, расположенном рядом с границей, или даже при нажатии также LinearLayout
позади него никакой реакции не происходит.
Но я проверил в окне «Выполнить», что при нажатии там запускается следующее:
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
Итак, я думаю, что если бы я могзахватите его, просто проверив, что 2 ACTION_DOWN
произошло за короткое время, и это удовлетворит мою потребность.
Я пытался перегрузить публичную логическую функцию onTouchEvent (MotionEvent ev), но она никогда не запускалась.
Я также пытался переопределить public boolean onInterceptTouchEvent(MotionEvent ev)
, как видно здесь , но я не могу понять, как получить ViewGroup
, который бы реагировал на это от элементовУ меня есть.
Есть ли способ захватитьЭто событие или любой другой способ решить эту проблему?