J'ai un TextView
que je veux limiter les caractères de celui-ci. En fait, je peux le faire mais la chose que je cherche, c'est comment ajouter trois points (...) à la fin de la chaîne. Celui-ci montre que le texte a continué. Ceci est mon XML mais il n'y a pas de points bien qu'il limite mon texte.
<TextView
android:id = "@+id/tvFixture"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_toLeftOf = "@id/ivFixture_Guest"
android:text = "@string/test_06"
android:lines = "1"
android:ems = "3"
android:gravity = "right"
style = "@style/simpletopic.black"
android:ellipsize="end"/>
singleLine
? Voir aussi: L'attribut xml singleLine est-il obsolète ou non dans Android?Ce qui suit est ce que j'ai appris en jouant avec différentes options pour forcer un
TextView
à une seule ligne (avec et sans les trois points).android: maxLines = "1"
Cela force simplement le texte à une ligne. Tout texte supplémentaire est masqué.
En relation:
ellipsize = "fin"
Cela coupe le texte qui ne tient pas, mais permet aux utilisateurs de savoir que le texte a été tronqué en ajoutant des points de suspension (les trois points).
En relation:
ellipsize = "chapiteau"
Cela fait défiler le texte automatiquement à travers TextView. Notez que parfois, il doit être défini dans le code:
Soi
android:maxLines="1"
- disant etandroid:singleLine="true"
devrait faire essentiellement la même chose et comme singleLine est apparemment obsolète, je préférerais ne pas l'utiliser, mais quand je le retire, le chapiteau ne défile plus. Le fait demaxLines
sortir ne l'affecte cependant pas.En relation:
HorizontalScrollView avec scrollHorizontally
Cela permet à l'utilisateur de faire défiler manuellement pour voir toute la ligne de texte.
la source
Essayez cette propriété de TextView dans votre fichier de mise en page.
la source
Je suppose que vous voulez limiter la largeur à une ligne et non la limiter par caractère? Depuis
singleLine
est obsolète, vous pouvez essayer d'utiliser les éléments suivants ensemble:la source
par exemple. vous pouvez utiliser
cela limitera la longueur de texview à 13 mais le problème est que si vous essayez d'ajouter 3 points (...), il ne l'affichera pas, car il fera partie de la longueur de textview.
en dehors de cela, vous devez utiliser
la source
Utilisation
android:singleLine="true"
android:maxLines="1"
app:layout_constrainedWidth="true"
Voilà à quoi
TextView
ressemble mon look:la source
J'utilise Horizonal Recyclerview.
1) Ici, dans CardView, TextView est déformé verticalement lors de l'utilisation
Consultez le groupe TextViews Wyman en gras, Jaskolski ...
2) Mais quand j'ai utilisé singleLine avec ellipsize -
Consultez le groupe TextViews Wyman en gras, Jaskolski ...
La 2ème solution a fonctionné correctement pour moi (en utilisant singleLine). J'ai également testé dans la version OS: 4.1 et supérieure (jusqu'à 8.0), cela fonctionne bien sans aucun plantage.
la source
code:
xml:
par exemple
Dans Matthieu 13, les disciples ont demandé à Jésus pourquoi il parlait à la foule en paraboles. Il répondit: "Il vous a été donné de connaître les mystères du royaume des cieux, mais il ne leur a pas été donné.
Résultat: Dans Matthieu 13, les disciples ont demandé à Jésus pourquoi il parlait à la foule en paraboles. Il a répondu: "Il vous a été donné de savoir ...
la source
J'ai obtenu le résultat souhaité en utilisant
L'astuce est de définir maxLines et minLines à la même valeur ... et pas seulement android: lines = "2", ne font pas l'affaire. Vous évitez également les attributs obsolètes.
la source
Vous devez ajouter les lignes suivantes dans votre mise en page pour l'affichage du texte
J'espère que cela fonctionne pour toi.
la source
Vous pouvez limiter le nombre de caractères de votre affichage de texte et ajouter (...) après le texte. Supposons que vous ne deviez afficher que 5 lettres et que vous deviez ensuite montrer (...), procédez comme suit:
un petit hack ^ _ ^. Bien que ce ne soit pas une bonne solution. Mais un travail autour qui a fonctionné pour moi: D
EDIT: J'ai ajouté une vérification pour moins de caractère selon votre numéro limité. de personnages.
la source
Pour travailler avec l' attribut android: ellipsize , vous devez limiter la largeur de mise en page de TextView , de sorte que le texte soit hors limites de la vue de TextView.
Ainsi, l' attribut android: layout_width joue un rôle clé ici, définissez-le en conséquence.
Un exemple peut être:
Maintenant, ici, si le texte dans android: text = "Ceci est un texte très long à afficher" disparaît de TextView avec un android: layout_width = "120dp" , android: ellipsize = "end" tronquera le texte et placer ... (3 points) après. c'est-à-dire que c'est très long ... sera affiché dans TextView.
la source
Je pense que vous donnez une hauteur et une largeur fixes de la vue texte. Ensuite, votre solution fonctionnera.
la source
vous pouvez écrire cette ligne en xml où vous prenez
textview
:la source
L'approche de @AzharShaikh fonctionne bien.
Mais je réalise un problème que TextView sera tronqué par mot (par défaut). Montrez si nous avons un texte comme:
test long_line_without_any_space_abcdefgh
TextView affichera:
tester...
Et j'ai trouvé une solution pour gérer ce problème, remplacer les espaces par le caractère d'espace insécable unicode, il fait envelopper TextView sur les caractères plutôt que sur les mots:
Le résultat:
test long_line_without_any_space_abc ...
la source
la source
Ajoutez ces deux lignes dans votre texte
la source
vous pouvez le faire en
xml
:la source
Dots
@ end avecmaxLength="35"
propriété toute solution?Vous changez juste ...
Utilisez cette ligne ci-dessous
.......
la source