Android RadioGroup. Принудительные кнопки в одном столбце?

Я хочу RadioGroup с различными RadioButtons отображается в двух столбцах. Но похоже что RadioGroup заставляет RadioButtons отображаться только в одном столбце. Есть ли способ, чтобы кнопки отображались в двух столбцах?

Например, этот код XML поместит четыре кнопки в square form, но внутри RadioGroup они все в one column,

<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RadioButton
        android:id="@+id/radio1"
        android:text="Button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <RadioButton
        android:id="@+id/radio2"
        android:text="Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="42dp"
        android:layout_marginEnd="42dp"
        android:layout_alignBottom="@+id/radio1"/>

    <RadioButton
        android:id="@+id/radio3"
        android:text="Button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/radio1"
        android:layout_alignLeft="@+id/radio1"
        android:layout_alignStart="@+id/radio1"
        android:layout_marginTop="34dp"/>

    <RadioButton
        android:id="@+id/radio4"
        android:text="Button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/radio3"
        android:layout_alignLeft="@+id/radio2"
        android:layout_alignStart="@+id/radio2"/>
</RadioGroup>

1 ответ

Решение

Невозможно отобразить переключатели в нескольких столбцах с помощью группы "Радио". Однако это может быть сделано иначе, как показано ниже.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button1" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="42dp"
            android:layout_marginRight="42dp"
            android:text="Button2" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button3" />

        <RadioButton
            android:id="@+id/radio4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button4" />

    </LinearLayout>
</LinearLayout>

установите View.onClickListener для всех переключателей и настройте статус проверки / снятия флажка в вашем коде.

Другие вопросы по тегам