webentwicklung-frage-antwort-db.com.de

Das Feld "Android TextView SingleLine" verbirgt langen Text

Ich habe eine TextView, die auf der linken Seite des Bildschirms sitzt und mit der Schwerkraft = "rechts" und mit SingleLine = "true" festgelegt ist.

Wenn der Text in dieser Ansicht zufällig zu lang wird, möchte ich, dass er einfach von der linken Seite der Ansicht verschwindet. Ich dachte, die Konfiguration unten würde das tun, aber was wirklich passiert, ist, dass die lange Saite vollständig verschwindet, vermutlich unten und außerhalb der Sicht irgendwo.

Wie kann ich eine einfache Textansicht erstellen, die eine einzelne Textzeile enthält und deren Layout beibehalten wird, auch wenn etwas Unerwartetes passiert? ... oder sogar etwas Vorhersehbares.

<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

Dies ist der Zweck der "Ellipsize" - das Abschneiden eines Textabschnitts, um zusätzlichen Text anzuzeigen.

In Ihrem Fall müssen Sie einfach Folgendes hinzufügen:

Android:ellipsize="end"

oder Sie müssen vielleicht tiefer gehen:

Eine Zeichenfolge in Java automatisch ausfüllen

Oder sieh dir das an:

Android - mehrzeilige Textansicht mit Ellipsize

Hinter der Erweiterung der Klasse steht der Gedanke, dass Sie das Verhalten der TextView anpassen können, wenn der Textinhalt den zur Verfügung gestellten Platz überschreitet. Sie können ihr beispielsweise das Aussehen verleihen, dass es "überläuft", indem Sie die Auffüllung entfernen. Eine Ellipsis ist ein Indikator, der häufig verwendet wird, um zu erklären, "dass es mehr Text gibt, den Sie nicht sehen können" - so würde es aussehen :

Das ist wirklich sehr lang ...

(Die 3 Punkte sind die Ellipsis - Ihr Text geht in die entgegengesetzte Richtung, sollte aber trotzdem funktionieren)

Mit einer benutzerdefinierten Textansicht können Sie das "..." in nichts oder irgendetwas ändern, das Sie möchten (sogar ein Bild, das ich gemacht habe).

Sie können den Text auch marquieren:

TextView Marquee funktioniert nicht

32
Jim

Fügen Sie 2 Eigenschaften in XML hinzu

Android:singleLine="true"

Android:ellipsize="end"
8

Sie sollten mit dem Ellipsize-Attribut des TextView.Check unten spielen:

<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" />

Es klappt.

0
Hanisha