Я пытаюсь достичь следующей иерархии: GridView -> Каждый элемент представляет собой представление (назовем его «контейнером»), который содержит фон, ImageView и CheckBox.Android: добавьте представление в другое, имея прослушиватель кликов на родительском
Если пользователь нажимает на контейнер, не имеет значения, где, будь то над флажком, изображением или фоном, CheckBox должен изменить его состояние проверки.
Сейчас у меня есть следующий макет для него:
<!-- main layout -->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<Button android:id="@+id/selectBtn"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Select" android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:minWidth="200dp" />
<GridView android:id="@+id/imageGridView"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:numColumns="auto_fit" android:verticalSpacing="10dp"
android:horizontalSpacing="10dp" android:columnWidth="90dp"
android:stretchMode="columnWidth" android:gravity="center"
android:layout_above="@id/selectBtn" />
</RelativeLayout>
<!-- gallery item layout - every grid item is inflated from this -->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView
android:id="@+id/thumbImage"
android:layout_width="110dp"
android:layout_height="110dp"
android:background="#999999"
android:layout_centerInParent="true"
android:contentDescription="image thumb"/>
<CheckBox
android:id="@+id/itemCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
После этого я хочу, чтобы иметь возможность получить проверенные контейнеры.
Я действительно не знаю, как создать этот макет. Даже в моем макете теперь все в порядке, нет «контейнера», который будет реагировать на прослушиватель кликов. Я могу только сделать checkbox реагировать на щелчок, что, конечно, не очень удобно. Итак, как я могу добавить контейнер-оболочку вокруг этих представлений, которые будут использоваться для нажатия? Большое спасибо!