Android: diseño relativo dos botones ocupan todo el espacio horizontal disponible
Tengo un diseño relativo y tengo dos botones en ella con los textos "hola" y "mundo", respectivamente. Quiero que estos dos botones se encuentren adyacentes entre sí e igualmente ocupen todo el espacio horizontal disponible.
He intentado lo siguiente, pero no se espera salida
- Definir dibujable para CheckedTextView para estado marcado y presionado en Android
- Los elementos de formulario de Android tienen diferentes tamaños en diferentes emuladores
- Diseño diferente para orientación horizontal y vertical
- Android - diseño lineal multilínea
- Android: EditText NextFocusDown no desencadenar Spinner
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/world" android:id="@+id/world" android:layout_alignParentRight="true" android:layout_toRightOf="@+id/hello" android:layout_alignTop="@+id/hello" /> <Button android:id="@+id/hello" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" /> </RelativeLayout>
Traté de cambiar el android: layout_width de ambos niños a fill_parent pero que no funcionó demasiado.
Tengo una solución de trabajo de usar LinearLayout con el layout_weight fijado a 0.5 en ambos childs pero quise entender si hay manera de hacer eso en la disposición relativa sí mismo.
Gracias,
- Dos diseños diferentes para una actividad
- Barra de herramientas transparente de Android sobre un ImageView
- Softkeyboard oculta botón debajo de varias líneas EditText?
- ¿Cómo puedo inhabilitar todas las vistas dentro del diseño?
- ¿El android: scaleType = "fitCenter" sólo funciona con los atributos fix Layout_width y Layout_height?
- Cambiar el tamaño del texto en <selector> cuando state_pressed = true
- ¿Cómo pasar el Array a otra actividad?
- Cómo Inflar Extended LinearLayout de XML
No puede hacer esto con RelativeLayout
. Intente LinearLayout
y el atributo layout_weight
.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/hello" android:layout_toRightOf="@+id/view" android:text="First" /> <View android:id="@+id/view" android:layout_width="0dp" android:layout_height="1dp" android:layout_centerHorizontal="true" /> <Button android:id="@+id/hello" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/view" android:text="Second" /> </RelativeLayout>
Nota:
- Incluso si el
android:layout_width
erafill_parent
el resultado no cambiará. - Lo que realmente importa aquí es
android:layout_alignParentRight
yandroid:layout_alignParentLeft
Sé que es una petición antigua, pero tal vez puede ser útil para alguien.
En su caso, la solución correcta es el uso de Linear Layout. Pero para responder a su solicitud y suponga que tiene un widget en su diseño:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tvdescription" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="description here"/> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/tvdescription"> <Button android:id="@+id/world" android:layout_height="wrap_content" android:layout_width="0dp" android:text="@string/world" android:weight="1" /> <Button android:id="@+id/hello" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/hello" android:weight="1" /> </LinearLayout>
Puede intentar implementar LinearLayout (horizontal) y luego establecer android: layout_weight = "1" para ambos botones.
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int height = metrics.heightPixels; int width = metrics.widthPixels;
En la disposición relativa usted puede lograr esto dinámicamente.
Button1.setWidth(width / 2); Button2.setWidth(width / 2);
Tome un botón alinearlo en el centro con 1dp
width
y height
. Ahora coloque su Button1 con la propiedad android:layout_width = fill parent
to left of center
, de nuevo con respecto al botón central, presione Button2 a la right of center
con la propiedad android:layout_width = fill parent
.
- Android – ¿Cómo obtener el valor del elemento seleccionado de una ruleta y ponerlo en una cadena?
- ¿Cómo pasar de un fragmento a otro fragmento al hacer clic en un ImageView en Android?