Impedir que las vistas se superpongan en RelativeLayout

Estoy tratando de desarrollar una aplicación de Android, pero estoy teniendo algunos problemas con el diseño de GUI. La siguiente parte de la captura de pantalla es mi problema (las líneas rojas y azules fueron generadas por las opciones de depuración de Android).

mi problema

Este es el código:

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/caption" android:layout_below="@+id/caption" > <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout> 

Como se puede ver, el TextView myText se superpone a ImageButton button_edit. Una solución simple sería utilizar un LinearLayout en lugar de un RelativeLayout. El problema es ese:

  1. Necesito el botón de edición a la derecha
  2. Necesito el texto para llenar el resto del diseño (a la izquierda del botón de edición, obviamente)

También intenté establecer el layout_width de myText a 'fill_parent', pero llenaba todo el resto de la pantalla a la izquierda del botón de edición.

El comportamiento esperado sería myText para aumentar su altura (convirtiéndose en un TextView de dos líneas) en lugar de superponer 'button_edit'

¿Alguien puede ayudarme? Gracias

Use layout_toLeftOf en el diseño de TextView

Me gusta esto:

 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/caption" android:layout_below="@+id/caption" > <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_toLeftOf="@+id/button_edit" /> 

Otra forma de hacerlo es usar el atributo android: layout_toEndOf

 <ImageButton android:id="@+id/button_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/content_edit" style="?android:attr/borderlessButtonStyle" android:layout_toEndOf="@+id/myText" /> <TextView android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="@string/num_placeholder" android:textAppearance="?android:attr/textAppearanceLarge" /> 

  • Orden de los botones OK / Cancel en ICS
  • Animación de un grupo de niños en un grupo de vistas
  • Cómo colocar una vista inferior y central de la página android layout?
  • ¿Qué puedo hacer cuando obtengo un error "no se puede resolver con un tipo"?
  • ActionBarSherlock & HoloEverywhere - Forzar el desbordamiento?
  • ¿Visión de lista de dos vías?
  • ¿Qué vista se debe utilizar para el nuevo diseño del material?
  • Creación de Gridview con imágenes seleccionables, Android
  • Altura de la vista de notificación de estado personalizado de Android
  • Cómo ocultar la barra inferior del sistema en la tableta android
  • Android - ¿cómo colocar botones y hiladoras con linearlayout?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.