I have a ListView which gets populated with RelativeLayouts. The content of these RelativeLayouts can change and thus change their height respectively. On each RelativeLayout, I have a little vertical bar on the left side of the layout that matches the height of the layout.
It's a similar look to this -> Link
Though for some reason, the View object that I'm using isn't expanding to the height of the layout.
What am I doing wrong?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/post"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/column_post_selector"
android:orientation="horizontal" >
<!-- Status bar (THIS ISN'T FILLING TO PARENTS' HEIGHT) -->
<View
android:id="@+id/status"
android:layout_width="3dp"
android:layout_height="fill_parent"
android:layout_alignLeft="@id/post"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:background="#33B5E5" />
<ImageView
android:id="@+id/thumbnail"
android:layout_width="80dip"
android:layout_height="80dip"
android:layout_toRightOf="@id/status"
android:contentDescription="@string/empty"
android:layout_marginRight="5dp"
android:scaleType="fitStart" />
<!-- Title -->
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/post"
android:layout_toRightOf="@id/thumbnail"
android:textColor="#ffffff"
android:textSize="14sp"
android:typeface="sans" />
<!-- Rightend Duration -->
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/title"
android:layout_marginRight="5dip"
android:gravity="right"
android:textColor="#10bcc9"
android:textSize="12sp"
android:textStyle="bold" />
</RelativeLayout>
I had a similar issue inside the cells of my RecyclerView
which had a RelativeLayout as root element.
A workaround for me was wrapping an extra LinearLayout around the root RelativeLayout element.
So you card looks like this:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/view_with_same_height_as_parent"
android:layout_width="10dp"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"/>
...
</RelativeLayout>
</LinearLayout>
Source: https://stackoverflow.com/a/28799251/3708094
If your RelativeLayout is inside a ScrollView, then on the ScrollView you need to add the fillViewPort param and set it to true
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With