Android Multiline in TextView

jf

Bekanntes Mitglied
Unter Swing gibt es ja JTextBox (single line) und JTextArea (multiline). - Wie verhält das unter Android?
Die TextView bietet ja eine setLines()-Methode, welche aber dann alle Minimum- und Maximum-Angaben für die Höhe überschreibt, was in den meisten Fällen ungünstig ist.
Ich möchte einen Text mehrzeilig darstellen, wobei stets alle Zeilen angezeigt werden (es sei denn, der Platz reicht dafür nicht aus), aber immer nur so viel Platz beansprucht wird, wie auch wirklich nötig ist.
 

schlingel

Gesperrter Benutzer
Das geht von Haus aus. Du musst nur das Attribut android:singleLine gleich false setzen. Ansonsten muss beim TextView layout_height auf wrap_content gestellt sein, aber ich glaube das versteht sich eh von selbst.
 

jf

Bekanntes Mitglied
Hallo Schlingel, ich habe hierzu dann doch noch eine Frage:
Kann man bei der TextView den automatischen Zeilenumbruch auch deaktivieren?
(multiline soll dennoch aktiv sein)
 

jf

Bekanntes Mitglied
Wie wendet man die TransformationMethods an?

- Ich lese es so, dass man damit die Inhalt der TextView beeinflussen kann:
Zeichen durch Punkte ersetzen (PasswordTransformationMethod), oder
Zeilenumbrüche ersetzen (HideReturnsTransformationMethod/SingleLineTransformationMethod)

- aber ich will ja nur die automatischen Zeilenumbrüche entfernen, die bereits im Text enthaltenen sollen bleiben.

Könnte es funktionieren, wenn ich die TextView in eine horizontale ScrollView packe?
 
Zuletzt bearbeitet:

schlingel

Gesperrter Benutzer
Du kannst selbst das Interface implementieren und die nötigen Methoden anwenden. Dann verwendest du dein Objekt und setzt es im Java anstatt per XML-Attribut android:singleLine zu arbeiten.

Dazu musst du allerdings ermitteln wie hoch der String ist den anzeigen möchtest. (Siehe dazu hier) Im Klartext: Du schreibst eine neue Klasse die das Interface implementiert. Dieses gibt den String zurück so wie er ist aber die Höhe der View updated.
 

Neue Themen


Oben