moskis
moskis

Reputation: 1156

Align elements in a row xml

I'm not good with some details of the xml, and I can't found a solution for the next problem.

I have a ListView. One row is defined like next xml code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_vertical" >

        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textColor="#ff888888"
            android:textSize="10dp"
            android:paddingRight="5dp"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:paddingLeft="5dp"
            android:text="02 OCT"
            android:textStyle="bold"
         />


        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:textColor="#ff000000"
            android:textSize="14dp"
            android:singleLine="true"
            android:ellipsize="end"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:text="GIRLFRIEND COFFE AT STARBUCKS COFFE"
            android:maxWidth="250dip"
         />
         <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:background="@drawable/icon_clip"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:id="@+id/img_posted_check"
        />
        <TextView
            android:id="@+id/relleno"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
             android:layout_weight="1"
            android:textColor="#ff000000"
            android:textSize="14dp"
            android:singleLine="true"
            android:ellipsize="end"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:text=""
         />

        <TextView
            android:id="@+id/amount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff000000"
            android:textSize="14dp"
            android:paddingLeft="5dp"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:paddingRight="5dp"
            android:text="$13.34"
         />
</LinearLayout>

If the text is short, I can see ok: enter image description here

But if the text description is so long, it takes all space until the limit of the window and is cropped with "..." ejecting the price and the clip marker: enter image description here

I can do this, only if I don't use the clip adding the weight attribute to the text view with title id (@+id/title) and without the layout with the id 'relleno'.

Upvotes: 0

Views: 1146

Answers (2)

Himani
Himani

Reputation: 227

Then you can replace imageview with textview..,use this

<TextView
        android:id="@+id/img_posted_check"
        android:layout_width="300dp"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_launcher" 
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"

        android:text="hiiii" />

Upvotes: 0

Mohsin Naeem
Mohsin Naeem

Reputation: 12642

I guess this is what you want

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    android:text="02 OCT"
    android:textColor="#ff888888"
    android:textSize="10dp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/img_posted_check"
    android:layout_toRightOf="@+id/date"
    android:ellipsize="end"
    android:maxWidth="250dip"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    android:singleLine="true"
    android:text="GIRLFRIEND COFFE AT STARBUCKS COFFE"
    android:textColor="#ff000000"
    android:textSize="14dp" />

<ImageView
    android:id="@+id/img_posted_check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:layout_toLeftOf="@+id/relleno"
    android:background="@drawable/ic_launcher" />

<TextView
    android:id="@+id/relleno"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/amount"
    android:ellipsize="end"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    android:singleLine="true"
    android:text=""
    android:textColor="#ff000000"
    android:textSize="14dp" />

<TextView
    android:id="@+id/amount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    android:text="$13.34"
    android:textColor="#ff000000"
    android:textSize="14dp" />

</RelativeLayout>

Upvotes: 1

Related Questions