2010-01-21 13 views
9

Tengo el siguiente diseño, que es 1 icono a la izquierda y 2 vistas de texto (apilar una encima de la otra) a la derecha. Me gustaría que el texto1 se centre verticalmente en el panel y cuando haga que el texto2 sea visible. GONE. ¿Puedes decirme cómo puedo hacer eso?¿Cómo puedo alinear el centro vertical de la imagen en un diseño lineal?

<RelativeLayout android:id="@+id/panel" 
     android:layout_width="fill_parent" 
     android:layout_height="?android:attr/listPreferredItemHeight"> 
    <ImageView 
     android:id="@+id/icon1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center_vertical"/> 
    <TextView android:id="@+id/text1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/icon1" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:layout_gravity="center_vertical"/> 
    <TextView android:id="@+id/text2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/icon1" 
     android:layout_below="@id/text1" 
     android:textAppearance="?android:attr/textAppearanceSmall"/> 
    </RelativeLayout> 
+0

android: layout_alignParentTop = "true" - es por eso que –

Respuesta

9

Lo cambiaría a una disposición relativa con solo tres vistas en el interior. Y puede usar android:layout_centerHorizontal, android:layout_centerVertical para alinear cosas también.

+0

Gracias. ¿Hay alguna manera de arreglar la alineación usando LinearLayout actual? – hap497

15

Todo lo que tiene que hacer es, en su primer ejemplo, reemplazar android:gravity en ImageView por android:layout_gravity. Eso es todo :)

Cuestiones relacionadas