Это может быть старая / закрытая тема, но я везде искал что-то полезное, пока не решил создать собственное решение. Если кто-то здесь пытается найти ответ, попробуйте этот, это может сэкономить вам минуту на размышления
<LinearLayout
android:id="@+id/llContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/selector"
android:clickable="true"
android:gravity="center"
android:orientation="vertical"
android:padding="10dp"
android:textStyle="bold">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="This is a text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_image />
</LinearLayout>
Поскольку линейный макет действует как контейнер и тот, у кого есть селектор, при щелчке по всему линейному макету все будет выглядеть именно так, как должно быть. если вы хотите, чтобы он был по центру, используйте относительный insteaf. Если вы хотите, чтобы он был отцентрирован по горизонтали, измените ориентацию на горизонтальную.
Обратите внимание НЕ забудьте добавить android: clickable = "true" в ваш основной контейнер (относительный или линейный) для выполнения действия.
Опять же, это может быть старая тема, но все же может помочь кому-то там.
-шоки надеются, что это поможет-
happycodings.