2010-03-24 8 views
30

Wie verhindere ich, dass ein TextView oder ein visuelles Objekt auf den Bildschirm gewickelt und stattdessen von den Seiten abgehackt wird? Gibt es dafür ein XML-Attribut oder einen Code oder ist es unmöglich, dass etwas vom Bildschirm überläuft?Verhindern, dass TextView in das übergeordnete Element umbricht

Zum Beispiel haben Sie dies:

text being wrapped http://i43.tinypic.com/6xwyzd.jpg

Aber Sie wirklich wollen, dass diese:

text being cropped http://i43.tinypic.com/i5rc51.jpg

Irgendwelche Ideen?

Antwort

58

Check-out android:maxLines="1" und wenn Sie ... Endung hinzufügen möchten auch hinzufügen android:ellipsize="end"

<TextView 
    android:id="@+id/name" 
    android:text="i want this to crop not wrap" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:ellipsize="end" /> 

android:singleLine="true" war deprecated in API Level 3.

+0

@ Pentium10: Nett, danke. Wie würde das für Buttons und so gemacht werden? – Jay

+0

Huh. Wahrscheinlich genauso. Sie können nicht viel mehr tun als das, was ich gerade gezeigt habe. Sie verwenden die Höhe und die Breite, um die Ansicht zu begrenzen, und der Rest wird abgeschnitten. – Pentium10

+1

Dies würde am Ende der Zeile zu einem "..." führen. –

8

Sie suchen nach android:singleLine="true".

+1

@FranciscoCorralesMorales Nirgendwo steht 'singleLine' ist veraltet: http://developer.android.com/reference/android/widget/TextView.html#attr_android:singleLine –

+0

Während IntelliJ anzeigt, dass Android: singleLine veraltet ist, tut es nicht ' t scheinen der Dokumentation zu entsprechen (ab API 27). Und tatsächlich hat es ein anderes Verhalten als maxLines = 1, da es so viel Text verursacht, wie die TextView gefüllt wird, während maxLines = 1 nach dem letzten vollständigen Wort, das geschrieben werden kann, abgeschnitten wird. – William

0

android: single = "true" funktioniert für mich

+1

Können Sie Ihre Antwort ein wenig erklären? Überlegen Sie, warum das funktionieren würde. –

0

Und es ist in Java-Code:

textView.setSingleLine(); 
0

textView.setHorizontallyScrolling(true); für mich gearbeitet.

Verwandte Themen