Home » Android » android:ellipsize="end" and android:maxEms not working

android:ellipsize="end" and android:maxEms not working

Posted by: admin June 15, 2020 Leave a comment

Questions:

I added

android:ellipsize="end"
android:maxEms="8"
android:singleLine="true"

to my TextView with the intention of showing three dots at the end and max text limit of 8 but it’s not working. It shows neither the dots nor any text limit.

How to&Answers:

Both of your attributes for adding ‘the three dots effect’ are correct

android:ellipsize="end"
android:singleLine="true"

but the effect happens only when the TextView does not have any free space on the screen to show the text.

To set the limit of the text in TextView you can use

android:maxLength="8"

but it doesn’t add the three dots, and as far as I am aware you would have to do it manually.

Something like this

String text = "A bit longer text";
if (text.length() > 8) {
    text = text.substring(0, 8) + "...";
}

The android:maxEms is something else than previous, you can read more about it

What is meant by Ems? (Android TextView)

Answer:

ellipsize will not work with width wrap_content

You can directly try the following example for testing.

<TextView
    android:layout_width="30dp"
    android:text="jhakjshdkajdhkjashkjdhakjsdjas"
    android:maxLines="1"
    android:lines="1"
    android:singleLine="true"
    android:ellipsize="end"
    android:layout_height="wrap_content" />

I hope this will help you to resolve the issue.

Answer:

For some reason, I accidentally had put:

android:inputType="textCapSentences"

on my TextView which prevented my ellipses from showing