2010-01-21 10 views
9

Mam następujący układ, którym jest 1 ikona po lewej i 2 widoki tekstowe (stos jeden nad drugim) po prawej stronie. Chciałbym mieć text1 pionowo w środku panelu i kiedy robię text2 Visible.GONE. Czy możesz mi powiedzieć, jak mogę to zrobić?Jak wyrównać pionowy środek obrazu w układzie liniowym?

<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" - dlatego –

Odpowiedz

9

Zmieniłbym go na jeden układ względny z trzema widokami wewnątrz. Możesz także użyć funkcji android:layout_centerHorizontal, android:layout_centerVertical, aby dopasować również elementy.

+0

Dzięki. Czy istnieje sposób, aby naprawić wyrównanie za pomocą bieżącego LinearLayout? – hap497

15

Wszystko, co musisz zrobić, to w swoim pierwszym przykładzie, aby zastąpić android:gravity na ImageView przez android:layout_gravity. To wszystko :)

Powiązane problemy