webentwicklung-frage-antwort-db.com.de

Text hat keine Ellipse

Ich habe eine Textansicht, die auf Ellipse gesetzt ist, aber wenn ich den Text einfüge, wird dies nicht getan. Irgendwelche Ideen?

<TextView 
    Android:id="@+id/LegalsView" 
    Android:ellipsize="end"
    Android:layout_width="wrap_content" 
    Android:layout_height="wrap_content"
    Android:textAppearance="?android:attr/textAppearanceMedium" />
25
digipen79

Versuchen:

Android:singleLine="true"
63
Edwin Evans
Android:layout_width="wrap_content"

erlaubt die TextView so lange zu erweitern, wie es nötig ist (einschließlich des Bildschirmlaufs). Um es ellipsen zu lassen, müssen Sie eine Breite festlegen, die von citizen empfohlen wird, vorzugsweise mit Android:layout_width="fill_parent" anstelle eines absoluten Werts.

Zusätzliche Hinweise: Sie sollten auch die maxLines der TextView (wahrscheinlich auf 1) festlegen, und um die eigentlichen Ellipsis ("...") anzuzeigen, müssen Sie wahrscheinlich auch festlegen

Android:scrollHorizontally="true"
16

Sie müssen die Einstellungen für Android anpassen, um die Position des Objekts korrekt berechnen zu können. Hat mehrere mögliche Kombinationen und hängt vom Rest des Layouts in derselben Zeile ab.

Dies ist eine Kombination, die funktioniert:

Android:layout_width="0dip" // dynamic width
Android:layout_weight="1"   // less weight, other objects still "0"
Android:ellipsize="end"     // ... into end of text (right)
Android:singleLine="true"   // one line, deprecated, but necessary for some ambients
Android:maxLines="1"        // one line, new mode

Zusammenfassend geben Sie die Gewichtung an, wenn Sie ein dynamisches Layout oder nur eine feste Größe verwenden. Dann wird angegeben, dass nur eine Zeile vorhanden ist, und konfiguriert, wie "..." angezeigt wird.

10
Rodrigo T.

Die einzige Möglichkeit, dies zu erreichen, besteht darin, width="1dp", weight="1", ellipsize="end", maxLines="1" und scrollHorizontally="true" einzustellen. Die ersten beiden haben die gleiche Wirkung wie width="match_parent", ohne dass das Widget den Rand der Anzeige erweitert. Die restlichen drei Einstellungen mussten alle vorgenommen werden, um den Text in Ellipsengröße zu bringen.

5
R.L.Watkins

Meine App fing an, Maxlines und Ellipsize zu ignorieren, als ich hinzugefügt wurde

Android:textIsSelectable="true"

Es scheint, dass diese Optionen nicht miteinander kompatibel sind.

5
WigglyWorld

Wenn Sie versuchen, mehrzeilige Ellipsis zum Laufen zu bringen, funktioniert das leider nicht sehr gut. Dies ist ein bekannter Fehler in der Android-Plattform. Soweit ich weiß, wurde er nicht behoben.
In einer TextView ist das Beste, was Sie erhalten können, 2 elliptische Linien (was durch Setzen erreicht werden kann) 

Android:maxLines="2"

Siehe this link.
Selbst bei einer absoluten Breite, wie in einer anderen Antwort erwähnt, gibt es immer noch maximal 2 Zeilen Ellipsis. (Wie auch erwähnt, ist Single-Line-Ellipsis erreichbar). So füllt Ihr Text beispielsweise Ihre achtzeilige Textansicht, sieht jedoch so aus, wenn Sie Ellipsis aktivieren:

+ --------------------------------------------- - + 
 | 
 | Dies ist mein cooler Text, der die | 
 | Füllen soll gesamte Textansicht aber leider wegen t ... | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | | 
 + --------------------------------------- -------- + 
 

Wenn Sie die Größe Ihres TextView kennen, können Sie eine benutzerdefinierte Komponente verwenden. here (Leider scheint das Google-Code-Projekt, das ursprünglich gehostet wurde, verschwunden zu sein, daher ist dieser Link alles, was ich finden konnte.

3
Caspar Harmer

Wenn Sie für Ihre TextView keine bestimmte Breite definieren, wird der Text zuerst eine Ellipse, wenn der Text die Breite der übergeordneten Ansicht erreicht.

2
Wroclai

Diese Lösung funktioniert:

Android:ellipsize="end"
Android:singleLine="false"
Android:lines="3"
Android:maxLines="3"

Width kann auch auf "wrap_content" gesetzt werden

2
user1774438

Sie ändern Ihre layout_width in bestimmte dp anstelle von wrap_content

und 

benutzen
Android: singleLine = "true"

Android: Ellipsize = "Ende"

code: 

    Android:layout_width="50dp"
    Android:layout_height="wrap_content"
    Android:text="check this text"
    Android:id="@+id/textView"
    Android:singleLine="true"
    Android:ellipsize="end"/>
0
Anandu

Funktioniert nur zur Laufzeit, machen Sie so etwas:

textView.setEllipsize(TruncateAt.END);
textView.setLines(1);
textView.setHorizontallyScrolling(true);
textView.setText("Long text goes here");
0
Egemen Hamutçu

Sie können maxLines auch so einstellen:

        <TextView
            Android:id="@+id/txt_title"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:maxLines="3"
            Android:ellipsize="end"
            Android:textStyle="bold"/>

Ellipsen werden angezeigt, wenn der Text die von MaxLines festgelegte Anzahl überschreitet.

0
Cletus Ajibade