it-swarm.com.de

Wie kann ich Ellipsen in meinem TextView anzeigen, wenn es größer als die 1 Zeile ist?

Ich habe folgendes Layout, das nicht funktioniert:

<LinearLayout 
    Android:orientation="horizontal" 
    Android:layout_width="match_parent" 
    Android:id="@+id/experienceLayout" 
    Android:background="#ffffff" 
    Android:layout_height="match_parent" 
    Android:paddingLeft="6dp" 
    Android:paddingRight="6dp" 
    Android:paddingBottom="6dp" 
    Android:paddingTop="6dp">

    <TextView 
        Android:layout_weight="1" 
        Android:id="@+id/experienceLabel" 
        Android:text="Experience" 
        Android:layout_height="wrap_content" 
        Android:textColor="#000000" 
        Android:layout_width="wrap_content" 
        Android:textStyle="bold">
    </TextView>

    <TextView 
        Android:id="@+id/experienceTextView" 
        Android:text="TextView" 
        Android:layout_height="wrap_content" 
        Android:textColor="#000000" 
        Android:layout_width="wrap_content" 
        Android:ellipsize="end" 
        Android:lines="1" 
        Android:maxLines="1" 
        Android:singleLine="true" 
        Android:fadeScrollbars="false">
    </TextView>

</LinearLayout>
80
Sheehan Alam

Dies ist ein häufiges Problem. Versuchen Sie es mit folgendem:

Android:scrollHorizontally="true"
Android:ellipsize="end" 
Android:maxLines="1"

.............. das scrollHorizontally ist die "Spezialsauce", die es funktionieren lässt.

244
BonanzaDriver

Dadurch wird auch eine einzelne Linie mit Ellipse erstellt

 Android:singleLine="true"
28
Atul Bhardwaj

Benutze das

Android:ellipsize="end"  
Android:singleLine="true"

Verwenden Sie dies nicht, ohne sich dessen bewusst zu sein, welche Ausgabe kommt

Android:ellipsize="end"  
Android:maxLines="1"

Wenn Sie maxlines = 1 verwenden, werden die meisten Zeichen einige Zeit abgeschnitten.

16
Mohamed Ibrahim

Die Art und Weise, wie es auf mehreren Geräten/APIs für mich funktioniert hat, war programmgesteuert so (wobei tv Ihre TextView ist):

    if (tv.getLineCount() > 1) {
        int lineEndIndex = tv.getLayout().getLineEnd(0);
        String text = tv.getText().subSequence(0, lineEndIndex - 3) + "\u2026";
        tv.setText(text);
    }
11
Marilia

Alle obigen Antworten entsprechen also der Anforderung, dass nur eine Zeile und dann die Ellipsis erscheinen sollte. Wenn die Ellipsen jedoch nach bestimmten Textzeilen angezeigt werden sollen, sollten Sie Folgendes verwenden:

Android:ellipsize="end"
Android:maxLines="2"
Android:singleLine="false"

Die Ellipsis erscheint damit erst nach 2 Zeilen. Hinweis: Es ist wichtig, singleLine als falsch zu definieren.

0
SDK4551