Mark
Mark

Reputation: 39881

Can't get ellipsis to work on Android

I have a TextView. I want it to ellipsize if longer than its available width. This does not work unless the input string has no spaces... can anyone provide an example of this working? I've tried different combinations of:

singleLine="true" maxLines="1" scrollHorizontally="false"

none of these have any effect. Again, if I supply a string that has no spaces in it, then the ellipsis appears correctly. What am I missing? I've tried this on 1.5, 1.6, 2.0, all same problem.

Thanks

Upvotes: 10

Views: 12276

Answers (4)

jgimbert
jgimbert

Reputation: 21

Try with:

textView.setSingleLine();
TruncateAt truncate = TruncateAt.END;
textView.setEllipsize(truncate);

Upvotes: 2

coderek
coderek

Reputation: 1870

Simple Solution.

int limit = 9;
if (str.length() > limit) {
    textView.setText(str.substring(0, limit)+"...");
} else {
    textView.setText(str);
}

Upvotes: 0

Ross Hambrick
Ross Hambrick

Reputation: 5940

this was the only combination that I could get to work on SDK ver4:

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

(Yes I know it says it's deprecated but I'm left without a choice)

Upvotes: 11

Jeremy Logan
Jeremy Logan

Reputation: 47514

Ellipsize is broken (go vote on the bug report, especially since they claim it's not reproducible) so you have to use a minor hack. Use:

android:inputType="text"
android:maxLines="1"

on anything you want to ellipsize. Also, don't use singleLine, it's been deprecated since 1.5.

Upvotes: 12

Related Questions