sirve - ¿Cómo espaciar uniformemente los botones de radio en Android?
radiobutton android checked (2)
Tengo tres botones de radio y quiero espaciarlos uniformemente en la pantalla. Cuando uso android:layout_weight="1" , los botones se estiran en la pantalla. Entonces, ¿cómo tendría la misma cantidad de espacio entre cada uno de ellos que también se adapta a diferentes tamaños de pantalla?
<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>
Noté que el uso de ponderaciones de diseño para los botones RadioB hizo que se alinearan fuera del centro, a pesar de que definitivamente compartieron el 50% de la pantalla (estaban alineados a la izquierda). El establecimiento de una gravedad para cada RadioButton provocó que solo el texto estuviera centrado / facepalm
El XML a continuación muestra cómo alinear horizontalmente dos botones de radio (podría ser cualquier vista) y centrarlos:
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/radioyes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yes"
android:checked="false"/>
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/radiono"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no"
android:checked="false"/>
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</RadioGroup>
Si desea que compartan el ancho de la pantalla por igual, debe configurar android:layout_width="match_parent" en cada View . Tu xml se convertiría en:
<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>
Para elaborar, layout_weight se puede utilizar de dos maneras.
- Si tiene varias vistas en un diseño lineal vertical y desea que la última ocupe todo el espacio restante, puede establecer sus alturas en
wrap_contenty dar a la última vista un peso de 1. - Si desea que todas las vistas compartan el espacio disponible, establezca todos los anchos / alturas en
0dpomatch_parentymatch_parenta cada vista el mismo valor de peso. Ellos compartirán el espacio por igual.
Para tener una escala dibujable de fondo, cree un nuevo xml que vaya en su carpeta drawable/ tenga este aspecto
<?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" />
Dale el nombre que desees (por ejemplo, auton_col_scale.xml) y haz referencia a ese dibujo como fondo.