Reputation: 163365
I have the following layout, which is 1 icon on the left and 2 text views (stack on top of each other) on the right. I would like to have the text1 vertically center in the panel and when I make the text2 Visible.GONE. Can you please tell me how can i do that?
<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>
Upvotes: 9
Views: 29699
Reputation: 68474
I'd change it to one relative layout with only three views inside. And you can use android:layout_centerHorizontal
, android:layout_centerVertical
to align stuff as well.
Upvotes: 10
Reputation: 98541
All you have to do is, in your first example, to replace android:gravity
on the ImageView by android:layout_gravity
.
That's all :)
Upvotes: 15