Search code examples
androidlistviewandroid-percentrelativelayout

How to use PercenRelativeLayout for listView item


I'm trying to use PercenRelativeLayout into ListView, but it doesnot works, height and width percents are ignored and nothing were showing into the listview. it works only for marshmallows.

here is list item xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<ImageView
    android:background="#d20404"
    android:id="@+id/test_image_id"
    android:layout_width="match_parent"
    android:layout_height="300dp" />

<TextView
    android:background="#000"
    android:text="sfgfashdsfg"
    android:layout_below="@+id/test_image_id"
    app:layout_heightPercent="50%"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</android.support.percent.PercentRelativeLayout>

I have a sample project on github


Solution

  • I have opened this issue to google. The answer were

    The height of your ListView row item is insufficiently specified.

    The first child says it wants to take 60% of the row height (note that this is heightPercent and not aspectRatio), and the second child says it wants to take 10% of the row height. But nothing tells ListView how tall the entire row wants to be. So it ends up being with height 0.

    Note that the semantics of height=match_parent do not work in ListView rows, and if this works in any one particular Android platform version (for however much you can say it works), it is purely incidental.

    https://code.google.com/p/android/issues/detail?id=202479