Je sais que cette question est posée à plusieurs reprises, j'ai passé en revue toutes les solutions mais le problème est toujours le même.
je veux que ma longueur de texte soit de 50 caractères. maintenant il vient en 2 lignes.
Voici ce que j'ai fait:
<TextView
Android:id="@+id/notification_Message"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/notification_head"
Android:layout_centerHorizontal="true"
Android:layout_margin="10dp"
Android:gravity="center"
Android:ellipsize="end"
Android:maxLength="50"
Android:text=" Hello developer. please check this message for long length. max length to 50 characters. "
Android:textSize="20sp" />
Le texte ici est juste un exemple de texte que j'ai ajouté. il n’affiche pas 3 points à la fin mais affiche un message jusqu’à 50 caractères. J'ai essayé max lignes aussi, ligne unique false aussi. mais pas de résultat positif ... Je ne veux pas non plus gérer cette chose par programmation en ajoutant logiquement trois points.
S'il vous plaît aider
Créez une largeur prédéfinie pour votre TextView et ajoutez ces attributs (Crier à @ T-D)
Android:ellipsize="end"
Android:maxLines="1"
MaxLines veillera à ce que votre texte ne soit pas affiché sur deux lignes et l’ellipsize ajoutera les trois points à la fin.
Ancienne réponse
Android:ellipsize="end"
Android:singleLine="true"
Pour une ligne de texte avec un point mais maintenant son Depreciated alors n'utilisez plus singleLine
Grâce à ce post, j'ai découvert que montrer un point après la fin du texte si nous avons plus d'une ligne, ça marche pour moi :)
Android:ellipsize="end"
Android:maxLines="2"
Postez ici cette réponse car toutes les réponses ici concernent une seule ligne et non pas plusieurs lignes
Android:ellipsize
fonctionnera uniquement avec:
Android:singleLine="true"
ou
Android:maxLines="#any number#"
Android:scrollHorizontally="true"
Parce que maxLength tronque le texte.
Vous devez donc gérer l’étiquette avec le code si vous voulez n’afficher que 50 caractères + points, ou laisser deux lignes pour la vue texte.
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:ellipsize="end"
Android:maxLines="2"
Android:scrollHorizontally="true"
Android:text="Hello developer. please check this message for long length. max length to 50 characters."
Android:textSize="20sp" />
Le Android:singleLine="true"
est obsolète
mieux utiliser
Android:maxLines="1"
etAndroid:ellipsize="end"
pour ajouter "..." à la fin du texte
Utilisez singleLine = "true"
pour texte limité par singleLine
L'approche de @Lokesh fonctionne bien.
Android:ellipsize="end"
Android:maxLines="2"
Mais je réalise qu’un problème est que TextView sera tronqué par Word (par défaut). Montrer si nous avons un texte comme:
test long_line_without_any_space_abcdefgh
le TextView affichera:
test ...
Et j'ai trouvé une solution pour gérer ce problème, remplacer les espaces par le caractère unicode no-space space, cela permet à TextView d'envelopper des caractères au lieu de mots:
yourString.replace(" ", "\u00A0");
Le résultat:
test long_line_without_any_space_abc ...
Moi aussi je me débattais avec ça. Android:maxLength
n'avait aucun effet alors j'ai joué avec Android:maxWidth
et cela a fonctionné.
Commander mon extrait ci-dessous.
<TextView
Android:id="@+id/tv_comment_author"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:maxWidth="120dp"
Android:singleLine="true"
Android:ellipsize="end"
Android:text="@string/dummy_text"/>
Créez votre personnalisation TextView:
<com.xyz.CustomizedTextViewName
Android:id="@+id/app_title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:ellipsize="end"
Android:singleLine="true"
Android:maxEms="10"
app:typeface="roboto_bold"/>
C'est la réponse que vous voulez:
<TextView
Android:id="@+id/tv_title"
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight="wrap_content"
Android:text="Title"
Android:maxLines="1"
Android:ellipsize="end"
Android:maxWidth="195dp"
Android:textColor="@color/white"
Android:textSize="14dp"
Android:gravity="center"
/>
vous pouvez le faire par xml
:
<TextView
Android:id="@+id/textview"
Android:maxLines="1" // or any number of lines you want
Android:ellipsize="end" />
Si singleLine="true"
est obsolète dans xml , vous souhaitez toujours utiliser le comportement d'une seule ligne, puis utilisez la méthode tv.setSingleLine(true);
dans le code.
<TextView
Android:id="@+id/txt__customizer_item"
Android:layout_width="wrap_content"
Android:layout_height="40dp"
Android:gravity="center"
Android:paddingRight="20dp"
Android:singleLine="true"
Android:text=" Hello developer. please check this message for long length. max length to 50 characters. "
Android:textAppearance="@Android:style/TextAppearance.Medium"
Android:textColor="@color/light_blue"
Android:textSize="20sp" />
Cela fonctionne pour me.give padding du côté droit.il affichera automatiquement ...