2012-09-17 5 views
17

Ich habe eine ListView mit einem ArrayAdapter bestückt. Für Artikel verwende ich nur ein einziges TextView Layout. Ich möchte, dass einige Zeilen zusammengesetzte Zeichen enthalten.Legen Sie tatsächlichen Textabstand in TextView mit zusammengesetzten Zeichensatz

Frage: Gibt es eine Möglichkeit, Padding für den tatsächlichen Text festzulegen, der in TextView enthalten ist, damit die zusammengesetzten Zeichen nicht die Auffüllung erhalten? Eine andere Lösung wäre, die Breite von Text zu sperren. Muss ich meinem Layout ImageViews hinzufügen?

Vielen Dank im Voraus.

+0

Ich bin auch neugierig, haben Sie eine Lösung gefunden? –

+2

Nein. Ich habe gerade einige 'ImageView's hinzugefügt und das war meine Lösung. Ich habe sogar ein Tumbleweed-Abzeichen für diese Frage, also denke ich, dass es unmöglich ist. – Gio

+1

Hah, lustig. Ich sehe einen Weg, um das Bild zu füllen, aber nicht den Text zu füllen. –

Antwort

8

Ich poste dies als eine Antwort, so dass jemand, der auf diesen Beitrag stößt, die Antwort findet.

Es gibt keine direkte Möglichkeit, ein Padding nur für Text festzulegen, aber Sie können eine possitive Füllung für das gesamte TextView festlegen und eine negative Füllung für das Zeichen festlegen.

+0

Brauchen Sie die Antwort bearbeiten. Verwende 'drawPadding' Attr. –

36

Ganz einfach

android: drawablePadding = "5dp"

Es wird automatisch die Polsterung entsprechend der Richtung verwenden

+0

Vielen Dank für Ihre Antwort. Ich habe mein Problem bereits gelöst und habe keine Quelle, um Ihre Methode auszuprobieren. – Gio

+1

Dies sollte die akzeptierte Antwort sein. – matiash

+5

Und nur als Referenz ist die Methode 'setCompoundDrawablePadding' – Niklas

7

Verbesserung auf Gio sugestion, die wahrscheinlich für eine datierte ist API/SDK ...

TL: DR - wenden Sie einfach android:drawablePadding an, um den Abstand zwischen Bild und Text zu erhöhen.

Erläuterung: android:drawablePadding gilt nun padding zwischen CompoundDrawable und original View, in diesem Fall der Textview den Text enthält;

android:padding und Modifikatoren gelten jetzt für die gesamte Gruppe, einschließlich aller Verbindungen.

Den Negativ-Positiv-Hack zu tun, scheint nicht mehr zu funktionieren.

Je nach der Zeichenposition (DrawableTop/Left/...) gilt das Padding in der entgegengesetzten Richtung, direkt neben dem Zeichen, also zwischen den beiden Elementen. Zum Beispiel würde das Anwenden von drawablePadding="10dp" auf einen links platzierten Zeichensatz einen ähnlichen Effekt haben, als würde man einen individuellen ImageView auf der linken Seite des TextView mit paddingRight="10dp" setzen (zumindest paddingweise).

+1

Ich denke, es war für ein datiertes SDK, wollte ich auch einige Legacy-Unterstützung haben. Zu dieser Zeit konnte ich mir keine bessere Lösung vorstellen, als ich gepostet habe. – Gio