У меня есть иерархия просмотра в одном из своих макетов следующим образом (упрощенный XML, чтобы сделать этот вопрос ясного):Как добавить один прослушиватель кликов для родительского контейнера и всех дочерних элементов?
<LinearLayout
android:id="@+id/top_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="8dp"
>
// 2 childern here
</LinearLayout>
<RelativeLayout
android:id="@+id/inner_layout"
android:layout_width="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_height="180dp"
>
// children here
</RelativeLayout>
</LinearLayout>
Я хотел бы, чтобы выполнить действие по щелчку везде в этой точке зрения.
Добавление прослушивателя кликов на top_container
не работает, если я не щелкнул его где-нибудь сверху, где я не касаюсь ни одного из дочерних представлений.
Есть ли способ сделать это без необходимости добавлять прослушиватель кликов ко всем дочерним элементам (который вызовет тот же обработчик)?
Обновление:
Обертывание все в FrameLayout не решить. Если я нажимаю в любом месте RelativeLayout щелчок слушатель еще не уволен
Вы пишете какой-либо прослушиватель кликов для просмотра вашего ребенка? – Drv
@ Drv: Вы правы. В одном из дочерних представлений был прослушиватель кликов. Напишите это как ответ, и я приму это – Jim
@Jim Не мой ответ соответствует вашему требованию? – Divers