2014-10-21 5 views
8

Ho una vista con un ascoltatore di clic lungo. Ciò attiva lo spettacolo di una finestra di dialogo a schermo intero. Ho bisogno di catturare gli eventi touch su detta finestra di dialogo (in particolare ACTION_UP) ma dal momento che il ACTION_DOWN è stato catturato dalla prima vista e non è mai stato rilasciato, non ho alcun evento nella finestra di dialogo.Ottieni gli eventi di tocco su una finestra di dialogo che viene mostrata mentre il dito stava già toccando lo schermo

Oltre a un ascoltatore nella vista che indica la finestra di dialogo quando ACTION_UP si verifica, si conosce un altro modo per rilevare ACTION_UP in questo caso dal punto di vista della finestra di dialogo?

+0

Forse dovresti rilasciare il listener di clic lungo (impostarlo su null) dopo aver fatto clic (e reimpostato quando si chiude la finestra di dialogo) – oznus

+0

Non sto usando un listener ma il metodo onTouchEvent della vista. Ho sempre provato a impostare un flag per restituire false anziché true su detto metodo, ma i risultati erano gli stessi. Ho anche provato a cambiare tutto per gli ascoltatori con gli stessi risultati. Valeva la pena, grazie. – CapitanNerd

+0

Hai mai risolto questo? –

risposta

0

Si potrebbe provare a restituire un falso su OnLongClickListener in modo che l'evento non venga consumato dalla prima vista, e che potrebbe consentire alla seconda finestra di dialogo di visualizzare l'azione Click.

+0

Purtroppo il metodo onLongPress di GestureListener restituisce void, non boolean. Stessa cosa con onLongPressListener. – CapitanNerd