tags:

views:

197

answers:

1

I have problems getting some of my views aligned in a relative layout that I use inside a row of my listview.

Here is a screenshot from the layout builder in Eclipse, this is what I think it should look like:

alt text

The next image is from the emulator. Now the TestTestTest View is at the top and covers the name and distance Textviews.

alt text

This is my layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="4dip">

<ImageView android:id="@+id/logo" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:adjustViewBounds="true"
    android:scaleType="centerInside" android:src="@drawable/icon"
    android:layout_centerVertical="true" android:layout_alignParentLeft="true"
    android:background="@color/green" />

<TextView android:id="@+id/distance" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Distance"
    android:layout_alignParentRight="true" android:layout_alignParentTop="true"
    android:paddingRight="4dip" android:background="#000000" />

<TextView android:id="@+id/name" android:layout_width="fill_parent"
    style="@style/ListHeadText" android:layout_height="wrap_content"
    android:text="Name"
    android:layout_alignTop="@id/distance" android:layout_toRightOf="@id/logo"
    android:layout_toLeftOf="@id/distance" android:gravity="clip_horizontal"
    android:lines="1" android:paddingLeft="4dip" android:background="@color/red" />

<TextView android:id="@+id/number" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Number"
    android:paddingRight="4dip" android:layout_alignRight="@id/distance"
    android:background="@color/darkred" android:layout_below="@id/distance" />

<TextView android:id="@+id/subcategory" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Subcategory"
    android:paddingLeft="4dip" android:layout_alignLeft="@id/name"
    android:lines="1" android:gravity="clip_horizontal"
    android:layout_below="@id/distance" android:background="@color/green" />

<TextView android:id="@+id/test" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:text="TestTestTest"
    android:paddingLeft="4dip" 
    android:layout_alignParentBottom="true" android:gravity="bottom"
    android:background="@color/red" />

Shouldnt align_parent_bottom put the view at the bottom of the cell in the list?

+1  A: 

Try adding android:layout_alignParentLeft="true" as well; sometimes Views aren't displayed properly if it can't anchor the view with at least 2 points. Also, is this RelativeLayout used within a ListView? If so, you might find you have some difficulty getting it to look right. There was another question where someone was having a problem where the RelativeLayout looked right on its own, but not once it was included as part of a ListView. We didn't manage to figure out what went wrong so he had to use nested LinearLayouts instead.

Steve H
changed to a nested linear layout.
Janusz