RelativeLayout dentro de LinearLayout?

Me preguntaba qué estoy haciendo mal aquí, ¿por qué rodear estos botones en un RelativeLayout causa un error? No he editado diseños mucho, ¿no puedo simplemente mantener un diseño relativo o lineal como ese?

Si no rodeo los botones en un diseño que aparecen debajo de uno al otro, estoy tratando de experimentar en tenerlos uno al lado del otro horizontalmente.

Creo que la forma en que he hecho todo este diseño es malo porque verticalmente parece bastante aplastado.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MainLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/topButtons" android:layout_margin="4dip" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/deviceConnect" android:layout_margin="8dip" android:layout_weight="3" android:layout_width="fill_parent" android:layout_height="match_parent" android:text="Connect2"/> <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="Connected Adapter:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/deviceSpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> <TextView android:id="@+id/currentSettings" android:layout_marginLeft="8dip" android:text="Current Settings: Not Connected" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Baud:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/baudSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Data:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/dataSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Parity:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/paritySpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_margin="8dip" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Stop:" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/stopSpinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true"/> </LinearLayout> </LinearLayout> </LinearLayout> <Button android:id="@+id/updateSettings" android:layout_margin="8dip" android:layout_weight="3" android:layout_width="fill_parent" android:layout_height="match_parent" android:text="Update\nSettings"/> </LinearLayout> <RelativeLayout> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> <Button android:id="@+id/Command" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Command"/> </RelativeLayout> <jackpal.androidterm.emulatorview.EmulatorView android:id="@+id/emulatorView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:focusable="true" android:focusableInTouchMode="true" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:orientation="horizontal" > <EditText android:id="@+id/term_entry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" android:imeOptions="actionNone|flagNoExtractUi" android:inputType="text|textImeMultiLine" /> <Button android:id="@+id/term_entry_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:text="@string/entry_send" /> </LinearLayout> 

Como otros han señalado ya, usted necesita definir un layout_width y layout_height para su RelativeLayout . Esto debería corregir el error, a menos que haya otros problemas que tenga. Pero pensé que valía la pena señalar lo que dice el DOCS sobre los diseños

Un RelativeLayout es una utilidad muy poderosa para diseñar una interfaz de usuario porque puede eliminar grupos de vistas anidadas y mantener la jerarquía de diseño plana, lo que mejora el rendimiento. Si se encuentra utilizando varios grupos anidados LinearLayout, es posible que pueda reemplazarlos por un único RelativeLayout.

Usted tiene muchos anidados LinearLayout s por lo que puede considerar el uso de un RelativeLayout para un mejor rendimiento y legibilidad. También puede usar android:orientation="horizontal" en un LinearLayout anidado para obtener sus botones al lado del otro. Pero, de nuevo, un RelativeLayout puede ser mejor en su situación en lugar de tener todos los diseños anidados.

Tu pariente relativo no tiene tamaño.

Definir layout_height y layout_width a ello

  <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> 
  • Cómo hacer relleno de imagen RelativeLayout fondo sin estiramiento
  • Softkeyboard oculta botón debajo de varias líneas EditText?
  • Configuración de vistas de forma dinámica con la configuración de LayoutParams.addRule en la última posición de la vista
  • ¿Cuál es la equivalencia iOS de Android RelativeLayout / LinearLayout?
  • Encuentra la posición de un mapa de bits en la vista de imagen de Android cuando la vista de contenedor se escala centerInside
  • RelativeLayout y ViewStub inflación
  • Android RelativeLayout programmatically set centerInParent
  • ¿Alternativa a weightSum en RelativeLayout?
  • Alineación de componentes en RelativeLayout
  • RelativeLayout - Desplazamiento hacia abajo
  • Cómo centrar una vista usando RelativeLayout?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.