Порядок событий щелчка, обрабатываемых родительским и дочерним представлениями

#android #events #click #parent

#Android #Мероприятия #нажмите #родительский

Вопрос:

Я некоторое время работал над разработкой Android, но меня все еще смущает этот вопрос..

Согласно документации Android, событие начнется из корневого представления и будет отправлено в дочернее представление. Это означает, что viewgroup должна получить событие касания перед view (которое является его дочерним), но из того, что я отладил, это не так…

Я создаю RadioGroup, затем добавляю в нее три кнопки radiobutton, каждый раз, когда я нажимаю radiobutton, запускается событие click. Событие щелчка Radiogroup даже не запускается…

Как мы можем это объяснить?

Есть идеи? Спасибо.

Ответ №1:

Когда дочерний элемент обрабатывает onClick, родительский элемент не получает событие. Если вы хотите, чтобы родительское событие получало событие, не устанавливайте OnClickListener для дочернего.

События onTouch обрабатываются немного по-другому.

Комментарии:

1. Как обрабатываются события onTouch? Например, если у вас есть несколько представлений друг над другом, и в нижнем представлении вы обрабатываете onTouch, но в верхнем представлении вы его не обрабатываете, и вы хотите запретить onTouch в нижнем представлении, если нажатие находится в верхнем представлении — есть ли способ сделать это без реализации onTouch?