Impossible d'obtenir des points de suspension pour travailler sur Android
-
18-09-2019 - |
Question
J'ai un TextView. Je veux qu'il ellipsize si plus que sa largeur disponible. Cela ne fonctionne pas à moins que la chaîne d'entrée n'a pas d'espace ... quelqu'un peut-il donner un exemple de ce travail? J'ai essayé différentes combinaisons de:
SingleLine = "true" maxLines = "1" scrollHorizontally = "false"
aucun de ceux-ci ont un effet. Encore une fois, si je fournir une chaîne qui n'a pas d'espace, alors les points de suspension apparaît correctement. Qu'est-ce que je rate? J'ai essayé cela sur 1,5, 1,6, 2,0, tout même problème.
Merci
La solution
Ellipsize est cassé (allez vote sur le rapport de bogue , d'autant plus qu'ils prétendent que ce n'est pas reproductible) donc vous devez utiliser un hack mineur. Utilisation:
android:inputType="text"
android:maxLines="1"
sur tout ce que vous voulez ellipsize. En outre, ne pas utiliser singleLine
, il a été dépréciée depuis 1.5.
Autres conseils
ce fut la seule combinaison que je pouvais aller travailler sur SDK ver4:
android:ellipsize="end"
android:singleLine="true"
(Oui, je sais qu'il dit qu'il dépréciée mais je suis parti sans un choix)
Essayez avec:
textView.setSingleLine();
TruncateAt truncate = TruncateAt.END;
textView.setEllipsize(truncate);
Solution simple.
int limit = 9;
if (str.length() > limit) {
textView.setText(str.substring(0, limit)+"...");
} else {
textView.setText(str);
}