How to evenly space out radiobuttons in Android?

android, cellspacing, radio-button, radio-group

Solution

If you want them to share screen width equally you need to set `android:layout_width="match_parent"` on each `View`. Your xml would become:

<RadioGroup
    android:id="@+id/auton_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/clear_fields"
    android:orientation="horizontal"
    android:paddingLeft="10dp" >

    <RadioButton
        android:id="@+id/auton_radio_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/auton_col" />
    <!-- android:layout_marginRight="380dp" -->

    <RadioButton
        android:id="@+id/auton_radio_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/auton_col" />

    <RadioButton
        android:id="@+id/auton_radio_3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/auton_col" />
</RadioGroup>

To elaborate, `layout_weight` can be used in two ways.

- If you have multiple views in a vertical linear layout and you want the last one to take up all the remaining space, you can set their heights to `wrap_content` and give the last view a weight of 1.

- If you want all views to share the available space, set all width/heights to `0dp` or `match_parent` and give each view the same weight value. They will share the space equally.

To have your background drawable scale, make a new xml that goes in your `drawable/` folder that looks like this

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:gravity="center"
    android:src="@drawable/auton_col" />

Name it whatever you like (e.g. auton_col_scale.xml) and reference that drawable as your background.

Problem

I have three radiobuttons and I want to evenly space them across the screen. When I use `android:layout_weight="1"`, the buttons are stretched out across the screen. So how would I have the same amount of space in between each of them that also scales on different screen sizes? ``` <RadioGroup android:id="@+id/auton_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="10dp" android:layout_below="@id/clear_fields" > <RadioButton android:id="@+id/auton_radio_1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/auton_col" android:layout_weight="1" /> <!-- android:layout_marginRight="380dp" --> <RadioButton android:id="@+id/auton_radio_2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/auton_col" android:layout_weight="1" /> <RadioButton android:id="@+id/auton_radio_3" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/auton_col" android:layout_weight="1" /> </RadioGroup> ```

Original source