match_parent property for children in a RelativeLayout
In short, is it possible to tell a child in a RelativeLayout to always
match the height of that RelativeLayout regardless of how other children
in that same RelativeLayout behave? In short, that's it. Details below.
What I'm trying to achieve is a ListView row with at least three views,
and one of those views would be kind of a stripe at the right side of the
list entry (the red view below). The problem I'm having is that there is a
TextView at the left side, and depeding on how much text I have, the
stripe won't fill the whole layout. This is very clearly explained by
images below.
ListView item layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<View
android:id="@+id/bottom_line"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_alignParentBottom="true"
android:background="#fc0" />
<!-- Why match_parent does not work in view below? -->
<View
android:id="@+id/stripe"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="#f00" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/stripe"
android:text="This is a very long line, meant to completely break
the match_parent property of the box at right"
style="?android:textAppearanceLarge"/>
</RelativeLayout>
Result:
Setting stripe and root height to match_parent makes no difference. I did it.
Repeating the question, I want the red stripe to always fill the parent
vertically. You can see stripe is not aligning to the top of root.
A note: the above example is the simplest, self-contained example I can
think of. It's just a ListActivity with an anonymous ArrayAdapter
populated by a static String array. The relevant code in onCreate is at
most 8 lines, so no worries there. It's really the layout. Besides, I have
this working with nested LinearLayouts already, but I'm trying to reduce
the depth of my layout structure a bit, if possible. LinearLayout works
fine, as expected.
No comments:
Post a Comment