Je veux avoir un seul TextView
ligné pour afficher 3 points à la fin lorsque le texte est plus long que le TextView
. Je ne sais pas pourquoi - mais je ne comprends pas.
J'ai déjà tourné la tête autour de questions StackOverflow similaires, mais je me suis retrouvé sans solution. Peut-être que quelqu'un a des conseils utiles.
<LinearLayout
Android:layout_height="wrap_content"
Android:layout_width="fill_parent"
Android:orientation="vertical">
<TextView
Android:textStyle="bold"
Android:text="Full Name"
Android:layout_height="wrap_content"
Android:textSize="16sp"
Android:layout_width="wrap_content"
Android:id="@+id/lName"
Android:layout_gravity="center_vertical"
Android:maxLines="1"
Android:ellipsize="end"/>
</LinearLayout>
Le LinearLayout
ci-dessus est imbriqué dans 2 autres LinearLayouts
. C'est peut-être important de savoir. J'ai déjà essayé l'attribut "singleLine
" aussi, mais certains disent que c'est obsolète et qu'il ne fonctionne pas de toute façon.
Ajoutez les styles suivants dans votre fichier de styles (généralement styles.xml
):
<style name="autoscroll">
<item name="Android:singleLine">true</item>
<item name="Android:ellipsize">Marquee</item>
<item name="Android:marqueeRepeatLimit">Marquee_forever</item>
<item name="Android:focusable">true</item>
<item name="Android:focusableInTouchMode">true</item>
<item name="Android:scrollHorizontally">true</item>
</style>
Ajoutez ensuite le style @style/autoscroll
à votre TextView
:
<TextView Android:id="@+id/lName"
style="@style/autoscroll" />
Vous pouvez réutiliser facilement votre fonction de défilement automatique lorsque vous le souhaitez.
Ajoutez ceci dans votre xml pour le TextView:
Android:maxWidth="200dp"
Android:maxLines="1"
Comme
Android:singleLine="true"
est obsolète.
Android:id="@+id/lName" Android:layout_width="150dp"
Android:layout_height="wrap_content"
Android:ellipsize="end"
Android:singleLine="true"
Android:text="Avinljhakjhsajkhakjshda"
Android:textSize="16sp"
Cela fonctionne avec singleLine="true"
mais cet attribut est désormais obsolète, utilisez ellipsize et scrollHorizontally="true"
au lieu.
Cela ne fonctionne pas avec moi à moins d'ajouter l'attribut 'Android: ems'
Android:ellipsize="end"
Android:singleLine="true"
Android:ems="8"