web-dev-qa-db-fra.com

Le champ Android TextView SingleLine masque le texte long

J'ai un TextView qui se trouve sur le côté gauche de l'écran et est défini avec gravité = "right" et il est défini avec SingleLine = "true".

Si par hasard le texte de cette vue devient trop long, je souhaite qu'il disparaisse tout simplement du côté gauche de la vue. Je pensais que la configuration ci-dessous ferait cela, mais ce qui se passe réellement, c'est que la longue chaîne disparaît complètement, vraisemblablement vers le bas et en dehors de la vue quelque part.

Comment créer une simple vue de texte contenant une seule ligne de texte et en conservant la mise en page, même en cas d'imprévu? ... ou même quelque chose de prévisible.

<TextView
    Android:id="@+id/tempF"
    Android:text="@string/tempF"
    Android:layout_width="146dp"
    Android:layout_height="wrap_content"
    Android:textColor="#cccccc"
    Android:textStyle="bold"
    Android:textSize="92dp"
    Android:fontFamily="serif"
    Android:gravity="right"
    Android:layout_marginTop="60dp"
    Android:layout_gravity="top|left"
    Android:singleLine="true"
    />
15
NFG

C'est le but de "ellipsize" - tronquer une partie de texte pour indiquer du texte supplémentaire.

Dans votre cas, vous devrez peut-être simplement ajouter quelque chose comme:

Android:ellipsize="end"

ou vous pourriez avoir besoin d'aller plus loin:

Ellipsize automatiquement une chaîne en Java

Ou regardez ceci:

Android ellipsize multiligne textview

L'idée derrière l'extension de la classe est que vous pouvez personnaliser le comportement de TextView lorsque le contenu du texte dépasse l'espace fourni. Par exemple, vous pouvez lui donner l’apparence qu’il «perd» en supprimant le rembourrage, etc. Un ellipsis est un indicateur couramment utilisé pour expliquer «il ya plus de texte que vous ne pouvez pas voir» - c’est à quoi il ressemblerait. :

C'est vraiment très long ...

(les 3 points sont les ellipses - votre texte va dans le sens contraire, mais il devrait quand même fonctionner)

Avec un TextView personnalisé, vous pouvez changer le "..." en rien ou autre chose que vous voulez (même une image, ce que j'ai fait).

Vous pouvez également sélectionner le texte:

TextView Marquee ne fonctionne pas

32
Jim

Ajouter 2 propriétés au format xml

Android:singleLine="true"

Android:ellipsize="end"
8
siddhartha shankar

Vous devriez jouer avec l'attribut ellipsize de TextView.Check ci-dessous:

<TextView
    Android:id="@+id/tempF"
    Android:text="@string/tempF"
    Android:layout_width="146dp"
    Android:layout_height="wrap_content"
    Android:textColor="#cccccc"
    Android:textStyle="bold"
    Android:textSize="92dp"
    Android:fontFamily="serif"
    Android:gravity="right"
    Android:layout_marginTop="60dp"
    Android:layout_gravity="top|left"
    Android:singleLine="true"
    Android:ellipsize="end"
    />
7
rupesh jain
           <TextView
            Android:id="@+id/tv_desc"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="@color/colorGray"
            Android:textSize="@dimen/_18dp"
            Android:padding="@dimen/_2dp"
            Android:singleLine="true"
            Android:ellipsize="end"
            Android:text="@string/desc"/>
0
Sunil
<View
    Android:layout_width="match_parent"
    Android:layout_height="1dp"
    Android:background="#000000" />

Ça marche.

0
Hanisha