2010-04-18 20 views
9

Estoy intentando maquetar 1 textview (upText) alineado a la izquierda y 1 textview (downText) y una vista de imagen (imagen) en la misma línea y alineado a la derecha.Cómo ver el diseño alineado a la derecha e inferior de LinearLayout

¿cómo puedo hacer eso? Intenté eso, pero tanto 'textview' como la vista de la imagen se alinearon a la izquierda.

 <TextView 
      android:id="@+id/uptext" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="left"/> 
     <TextView 
      android:id="@+id/downtext" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:gravity="right|bottom"/> 
     <ImageView 
      android:id="@+id/image" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="right|bottom"/> 
    </LinearLayout> 

Respuesta

23

No utilice una LinearLayout. Use un RelativeLayout, con

  • su primera TextView conjunto con android:layout_alignParentLeft="true"
  • su segundo TextView conjunto con android:layout_alignParentBottom="true" y android:layout_alignParentRight="true"
  • algo similar para su ImageView, que se ve actualmente como que va a solapar el segundo TextView
+0

Gracias. ¿Cómo puedo hacerlo para que tanto el segundo TextView como el ImageView estén dispuestos uno al lado del otro en la parte inferior y alineados a la derecha del LinearLayout principal? – michael

+1

El que va completamente en la parte inferior derecha ("Widget A") debe tener 'android: layout_alignParentBottom =" true "' and 'android: layout_alignParentRight =" true "'. El otro ("Widget B") debería tener 'android: layout_alignParentBottom =" true "' and 'android: layout_toLeftOf =" ... "', donde '" ... "' es el 'android: id' del Widget A. – CommonsWare

0

Me doy cuenta de que esta publicación es un poco antigua, pero por si alguien se encuentra con esto en su búsqueda para mayor claridad;

El diseño lineal primario es donde se debe especificar la gravedad para que el niño se alinee con el comportamiento deseado, por lo que las publicaciones anteriores explican que no es posible el diseño lineal para dos comportamientos separados ya que un niño no puede decidir dónde alinearse dentro de un diseño lineal.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="200dp" 
android:layout_height="50dp" 
android:gravity="bottom|right"> 

<TextView 
    android:layout_width="40dp" 
    android:layout_height="20dp" 
    android:text="test"/></LinearLayout> 

También hay que decir que la disposición lineal de los padres debe tener un tamaño definido y no ser wrap-contenido o esto no funcionará ya que el contenido envoltura implica que no habrá espacio adicional en el diseño para el posicionamiento, por lo tanto, al menos 'coincidencia-padre' para el ancho y alto es necesario, así como también tener un padre con un tamaño mayor que el contenido para el diseño lineal infantil.

Espero que esto ayude.

Cuestiones relacionadas