when I am using TextView
with singleLine="true"
and ellipsize="end"
(my top TextView),
it works well
but in another TextView
having more then 1 lines (in my case 3 lines in my bottom TextView
),
lines="3" and maxLines="3" and ellipsize="end",
doesn't work properly.
When I DON'T put ellipsize="end"
in tvDesc, it shows 3 line, which is OK.
Here is code : XML :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imgv"
android:layout_width="65dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/img1"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imgv"
android:background="@android:color/white"
android:textColor="@android:color/black"
android:text="Title testing line number and ellipsize at end"
android:maxLines="1"
android:singleLine="true"
android:ellipsize="end" <--- WORKS WELL
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvTitle"
android:layout_toRightOf="@+id/imgv"
android:layout_alignBottom="@+id/imgv"
android:layout_alignParentRight="true"
android:textSize="14dp"
android:lines="3"
android:maxLines="3"
<---------- WITHOUT ellipsize
android:text="I wanna this textview of having 3 lines and ellipsize at END and at this time I am Testing for it. This TextView shows 3 lines WITHOUT ellipsize property, but shows only 2 Lines when ELLIPSIZE property is setted"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
Above code shows TextView tvDesc with 3 Lines and No-Ellipsize. Here is Image :
But, I wanna ellipsize, so I uses followin code : XML :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imgv"
android:layout_width="65dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/img1"
android:scaleType="fitXY" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imgv"
android:background="@android:color/white"
android:textColor="@android:color/black"
android:text="Title testing line number and ellipsize at end"
android:maxLines="1"
android:singleLine="true"
android:ellipsize="end"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvTitle"
android:layout_toRightOf="@+id/imgv"
android:layout_alignBottom="@+id/imgv"
android:layout_alignParentRight="true"
android:textSize="14dp"
android:lines="3"
android:maxLines="3"
android:ellipsize="end" <------ WITH ELLIPSIZE
android:text="I wanna this textview of having 3 lines and ellipsize at END and at this time I am Testing for it. This TextView shows 3 lines WITHOUT ellipsize property, but shows only 2 Lines when ELLIPSIZE property is setted"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
Which shows TextView tvDesc with only 2 lines and Ellipsize,
which is not properly dezired UI, as Followin:
I wanna 3 lines in TextView tvDesc with ellipsize
CAN ANYONE HELP ME.?
Use the following to get a multiline textview with ellipsis on the last line :
Replace 4 with the number of lines you want. Hope it helps !
This is by far the simplest solution I've found and am currently using in deployment. Let me know if you need any other assistance!
Oh and remember to remove the
android:ellipsize
tag in your XML since you will be using the bottom code to automatically ellipsize at the end of 3 lines.I tried it out with maxLines and ellipsize on Android 7 & 8.
The preview shows 2 lines and on the third line "...".
But this seems to be a bug in the previewer.
On the device it just works fine, 3 lines with text, at the end of the third line "..."
Just set
android:maxLines
andandroid:ellipsize
.Try it
refer Programmatically create TextView with ellipsis
Just use ellipsize combined with
scrollHorizontally="true"
. Simple & clean.It worked perfectly for me.