Le texte n'est pas ellipsize
J'ai un TextView ensemble de ellipsize mais quand j'ai mis le texte ne le fait pas. Des idées?
<TextView
android:id="@+id/LegalsView"
android:ellipsize="end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium" />
- avez-vous essayé android:maxwidth attribut,je pense que c'est ce dont vous avez besoin
Vous devez vous connecter pour publier un commentaire.
Essayer:
permettra à la
TextView
pour développer aussi longtemps que nécessaire (y compris en cours d'exécution hors de l'écran). Pour le rendre ellipsize, vous allez avoir à définir une largeur en tant que citoyen conn recommandé, de préférence avecandroid:layout_width="fill_parent"
au lieu d'une valeur absolue.Conseils supplémentaires: Vous pouvez aussi définir la maxLines de la
TextView
(probablement à 1), et de se procurer les points de suspension ("...") s'affiche, vous aurez certainement à définirscrollHorizontally
êtrefalse
si vous voulez faireandroid:ellipsize="end"
. (Il devrait êtretrue
si vous voulez faireandroid:ellipsize="marquee"
.) Aussi, je trouve l'ajout de laandroid:lines
ouandroid:maxLines
attribut d'être suffisant, pas besoin deandroid:scrollHorizontally
. Oh, et les paramètres delines
oumaxLines
à être plus grande que1
fonctionne pour moi aussi.Vous devez faire correspondre les paramètres pour android peut calculer correctement la position de l'objet. A plusieurs combinaisons possibles, et dépend du reste de la mise en page est sur la même ligne.
C'est une combinaison qui fonctionne:
En résumé, vous indiquer le poids, si vous utilisez la mise en page dynamique, ou tout simplement une taille fixe, puis indique n'avoir qu'une ligne et configure le mode de fonctionnement "..." est affiché.
Mon application a commencé en ignorant maxlines & ellipsize quand j'ai ajouté
Il semble que ces options ne sont pas compatibles ensemble.
La seule façon que j'ai pu réaliser ce travail est de mettre en
width="1dp"
,weight="1"
,ellipsize="end"
,maxLines="1"
etscrollHorizontally="true"
. Les deux premiers ont le même genre d'effet quewidth="match_parent"
sans le widget de l'expansion sur le bord de l'écran, les trois autres paramètres tout devait être fait pour obtenir le texte de ellipsize.Si vous essayez d'obtenir plusieurs lignes de points de suspension de travail, malheureusement il ne fonctionne pas très bien. C'est un bug connu de la plate-forme Android et autant que je sache, il n'a pas été fixée.
Dans un
TextView
le meilleur que vous pouvez obtenir est de 2 lignes ellipsizing (qui peut être atteint par la création deReportez-vous à cette lien.
Même avec une largeur absolue comme mentionné dans une autre réponse, il reste seulement vous donne au max, 2 lignes de points de suspension. (Mais comme je le disais aussi, une seule ligne de points de suspension qui est réalisable). Ainsi, par exemple, votre texte pourrait remplir votre 8 ligne TextView, mais ressemblera à ceci lorsque vous mettez des points de suspension:
Si vous connaissez la taille de votre TextView, vous pouvez utiliser un composant personnalisé disponible ici (Malheureusement le google code du projet qui accueillait à l'origine il semble avoir disparu, d'où ce lien est tout ce que j'ai pu trouver).
Si vous n'êtes pas à la définition d'une largeur spécifique pour votre
TextView
le texte ellipsize premier lorsque votre texte est d'atteindre la vue parent de largeur.Cette solution fonctionne:
Largeur peut également être réglé sur "wrap_content"
Vous modifiez votre layout_width à certaines dp au lieu de wrap_content
et
utilisation
android:singleLine="true"
android:ellipsize="fin"
code:
Ne fonctionne que de l'exécution, de faire quelque chose comme ceci:
Vous pouvez ainsi définir maxLines comme suit:
Points de suspension apparaissent lorsque le texte dépasse la maxLines ensemble.
Je pense que vous avez besoin de spécifier une largeur absolue pour qu'il fonctionne.
ou