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

<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,

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> 

Comprobar

Nota:

  • Incluso si el android:layout_width era fill_parent el resultado no cambiará.
  • Lo que realmente importa aquí es android:layout_alignParentRight y android: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 - utiliza la cámara sin vista de superficie o textureview
  • Android support-v7 CardView: La vista de texto de encabezado con otro color de fondo no se extiende hasta que los bordes
  • ¿Por qué mi SVG no se carga en Vector Asset Studio
  • Problema de edición de nueve parches de StateListDrawable
  • Evitar que un FloatingActionButton se desplace dentro de ViewPager
  • Barra de desplazamiento no mostrada en RecyclerView
  • Cómo utilizar Android GradientDrawable
  • ¿Cómo puedo configurar el tamaño ProgressDrawable de un buscador personalizado para que sea más pequeño que el ProgressBackground
  • Límite máximo de visualización en la presentación de Android xml
  • Álbumes de Facebook de Android Ver usando Facebook Android sdk
  • No se puede cambiar la fuente predeterminada en la aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.