Я создал пользовательскую панель значков в Android, используя создатель макета XML, используя RadioGroup в LinearLayout (XML включен ниже). Каждая кнопка RadioButton в RadioGroup имеет свой собственный чертеж (с отмеченными и непроверенными состояниями) в качестве атрибута android:button
.
Линейный макет находится внутри RelativeLayout
, поэтому он может отображаться в произвольной позиции на экране (в данном случае в качестве боковой панели).
Ширина рисования составляет 55 пикселей, а атрибут android:layout\_width
всех этих представлений равен wrap\_content
.
Когда я делаю этот компонент видимым, выровненным по левому нижнему краю экрана, видимы только около трех четвертей ширины изображения RadioButton. Установка layout\_width
для RelativeLayout
на fill\_parent
исправляет это и приводит к появлению полной кнопки.
Однако это означает, что группа кнопок потребляет события нажатия по всей ширине экрана.
Как сделать так, чтобы кнопка полностью отображалась, и только область кнопки реагирует на нажатия? Жесткое кодирование ширины выдвижного элемента не является особенно желательным решением.
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content">
<LinearLayout android:id="@+id/LinearLayout02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_below="@+id/LinearLayout01" android:visibility="invisible">
<RadioGroup android:id="@+id/RadioGroup01" android:layout_height="wrap_content" android:checkedButton="@+id/RB01" android:layout_width="fill_parent">
<RadioButton android:id="@+id/RB01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:button="@drawable/DR01"/>
<RadioButton android:id="@+id/RB02" android:layout_width="fill_parent" android:layout_height="wrap_content" android:button="@drawable/DR02"/>
<RadioButton android:id="@+id/RB03" android:layout_width="fill_parent" android:layout_height="wrap_content" android:button="@drawable/DR03"/>
<RadioButton android:id="@+id/RB04" android:layout_width="fill_parent" android:layout_height="wrap_content" android:button="@drawable/DR04"/>
</RadioGroup>
</LinearLayout>
</RelativeLayout>